Changeset View
Changeset View
Standalone View
Standalone View
www/node14/Makefile
PORTNAME= node | PORTNAME= node | ||||
DISTVERSIONPREFIX= v | DISTVERSIONPREFIX= v | ||||
DISTVERSION= 14.18.1 | DISTVERSION= 14.19.3 | ||||
PORTREVISION= 2 | |||||
CATEGORIES= www | CATEGORIES= www | ||||
MASTER_SITES= http://nodejs.org/dist/v${DISTVERSION}/ | MASTER_SITES= http://nodejs.org/dist/v${DISTVERSION}/ | ||||
PKGNAMESUFFIX= 14 | PKGNAMESUFFIX= 14 | ||||
MAINTAINER= bhughes@FreeBSD.org | MAINTAINER= bhughes@FreeBSD.org | ||||
COMMENT= V8 JavaScript for client and server | COMMENT= V8 JavaScript for client and server | ||||
LICENSE= MIT | LICENSE= MIT | ||||
LICENSE_FILE= ${WRKSRC}/LICENSE | LICENSE_FILE= ${WRKSRC}/LICENSE | ||||
BROKEN_SSL= libressl libressl-devel | |||||
BROKEN_SSL_REASON= Node.js 14.x LTS requires OpenSSL 1.1.x or the BUNDLED_SSL option enabled | |||||
ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le | ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le | ||||
USES= compiler:c++11-lib gmake python:2.7-3.9,build pkgconfig \ | BUILD_DEPENDS+= brotli>=1.0.9,1:archivers/brotli \ | ||||
localbase shebangfix | c-ares>=1.17.2:dns/c-ares \ | ||||
libnghttp2>=1.42.0:www/libnghttp2 \ | |||||
libuv>=1.42.0:devel/libuv \ | |||||
objdump:devel/binutils | |||||
LIB_DEPENDS+= libbrotlidec.so:archivers/brotli \ | |||||
libcares.so:dns/c-ares \ | |||||
libnghttp2.so:www/libnghttp2 \ | |||||
libuv.so:devel/libuv | |||||
OPTIONS_DEFINE= BUNDLED_SSL DOCS NLS DTRACE | USES= compiler:c++11-lib gmake localbase pkgconfig \ | ||||
OPTIONS_DEFAULT= DTRACE | python:2.7-3.10,build shebangfix | ||||
BROKEN_SSL= libressl libressl-devel | |||||
BROKEN_SSL_REASON= node.js 14.x LTS requires OpenSSL 1.1.x or the BUNDLED_SSL option enabled | |||||
SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py deps/v8/tools/*.py \ | |||||
tools/*.py tools/inspector_protocol/*.py | |||||
HAS_CONFIGURE= yes | |||||
CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \ | |||||
--shared-brotli \ | |||||
--shared-cares \ | |||||
--shared-libuv \ | |||||
--shared-nghttp2 \ | |||||
--shared-zlib \ | |||||
--without-npm | |||||
MAKE_ENV+= CC.host=${CC} \ | |||||
CFLAGS.host="${CFLAGS}" \ | |||||
CXX.host=${CXX} \ | |||||
CXXFLAGS.host="${CXXFLAGS}" \ | |||||
LDFLAGS.host="${LDFLAGS}" \ | |||||
LINK.host=${CXX} | |||||
TEST_TARGET= test-only | |||||
TEST_ARGS= -i | |||||
CONFLICTS_INSTALL= node node10 node16 | |||||
PREFIX_RELDEST= ${PREFIX:S,^${DESTDIR},,} | |||||
REINPLACE_ARGS= -i '' | |||||
OPTIONS_DEFINE= BUNDLED_SSL COREPACK DOCS DTRACE NLS | |||||
OPTIONS_DEFAULT= COREPACK DTRACE | |||||
OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}} | OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}} | ||||
OPTIONS_SUB= yes | |||||
.if !exists(/usr/sbin/dtrace) | .if !exists(/usr/sbin/dtrace) | ||||
OPTIONS_EXCLUDE+= DTRACE | OPTIONS_EXCLUDE+= DTRACE | ||||
.endif | .endif | ||||
OPTIONS_EXCLUDE_aarch64= DTRACE | OPTIONS_EXCLUDE_aarch64= DTRACE | ||||
# dt_modtext:/usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c(820): arm not implemented | # dt_modtext:/usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c(820): arm not implemented | ||||
OPTIONS_EXCLUDE_armv6= DTRACE | OPTIONS_EXCLUDE_armv6= DTRACE | ||||
OPTIONS_EXCLUDE_armv7= DTRACE | OPTIONS_EXCLUDE_armv7= DTRACE | ||||
OPTIONS_EXCLUDE_powerpc64= DTRACE | OPTIONS_EXCLUDE_powerpc64= DTRACE | ||||
OPTIONS_EXCLUDE_powerpc64le= DTRACE | OPTIONS_EXCLUDE_powerpc64le= DTRACE | ||||
OPTIONS_SUB= yes | |||||
BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation | BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation | ||||
BUNDLED_SSL_USES_OFF= ssl | COREPACK_DESC= Build and install corepack package manager | ||||
BUNDLED_SSL_CONFIGURE_OFF= --shared-openssl --openssl-use-def-ca-store | |||||
BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss | BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss | ||||
BUNDLED_SSL_USES_OFF= ssl | |||||
BUNDLED_SSL_CONFIGURE_OFF= --openssl-use-def-ca-store \ | |||||
--shared-openssl | |||||
NLS_CONFIGURE_ON= --with-intl=system-icu | COREPACK_CONFIGURE_OFF= --without-corepack | ||||
NLS_BUILD_DEPENDS= icu>=69.1:devel/icu | |||||
NLS_LIB_DEPENDS= libicui18n.so:devel/icu | |||||
DTRACE_CONFIGURE_ON= --with-dtrace | DTRACE_CONFIGURE_ON= --with-dtrace | ||||
HAS_CONFIGURE= yes | NLS_BUILD_DEPENDS= icu>=69.1:devel/icu | ||||
NLS_LIB_DEPENDS= libicui18n.so:devel/icu | |||||
CONFLICTS_INSTALL= node10 node16 node | NLS_CONFIGURE_ON= --with-intl=system-icu | ||||
CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \ | |||||
--without-npm \ | |||||
--shared-brotli \ | |||||
--shared-cares \ | |||||
--shared-libuv \ | |||||
--shared-nghttp2 \ | |||||
--shared-zlib | |||||
SHEBANG_FILES= deps/v8/tools/*.py \ | |||||
deps/v8/third_party/inspector_protocol/*.py \ | |||||
tools/*.py \ | |||||
tools/inspector_protocol/*.py | |||||
PREFIX_RELDEST= ${PREFIX:S,^${DESTDIR},,} | |||||
REINPLACE_ARGS= -i '' | |||||
MAKE_ENV+= CC.host=${CC} CFLAGS.host="${CFLAGS}" \ | |||||
CXX.host=${CXX} CXXFLAGS.host="${CXXFLAGS}" \ | |||||
LINK.host=${CXX} LDFLAGS.host="${LDFLAGS}" | |||||
BUILD_DEPENDS+= brotli>=1.0.9,1:archivers/brotli \ | |||||
c-ares>=1.17.2:dns/c-ares \ | |||||
libuv>=1.42.0:devel/libuv \ | |||||
libnghttp2>=1.42.0:www/libnghttp2 \ | |||||
objdump:devel/binutils | |||||
LIB_DEPENDS+= libbrotlidec.so:archivers/brotli \ | |||||
libcares.so:dns/c-ares\ | |||||
libuv.so:devel/libuv \ | |||||
libnghttp2.so:www/libnghttp2 | |||||
.include <bsd.port.options.mk> | .include <bsd.port.options.mk> | ||||
.if (defined(PPC_ABI) && ${PPC_ABI} == ELFv2) || ${ARCH} == powerpc64le | .if (defined(PPC_ABI) && ${PPC_ABI} == ELFv2) || ${ARCH} == powerpc64le | ||||
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-common.gypi | EXTRA_PATCHES= ${PATCHDIR}/extra-patch-common.gypi | ||||
.endif | .endif | ||||
.if ${ARCH} == armv6 || ${ARCH} == armv7 | .if ${ARCH} == armv6 || ${ARCH} == armv7 | ||||
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-tools_v8__gypfiles_v8.gyp | EXTRA_PATCHES= ${PATCHDIR}/extra-patch-tools_v8__gypfiles_v8.gyp | ||||
.endif | .endif | ||||
.if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64 | .if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64 | ||||
CONFIGURE_ARGS+=--openssl-no-asm | CONFIGURE_ARGS+= --openssl-no-asm | ||||
.endif | .endif | ||||
post-patch: | post-patch: | ||||
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \ | @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \ | ||||
${WRKSRC}/tools/v8_gypfiles/v8.gyp | ${WRKSRC}/tools/v8_gypfiles/v8.gyp | ||||
post-configure: | post-configure: | ||||
# Post-process Makefile and *.mk files created by node-gyp and remove | # Post-process Makefile and *.mk files created by node-gyp and remove | ||||
# all occurrences of -I${LOCALBASE}/include. C*FLAGS include this | # all occurrences of -I${LOCALBASE}/include. C*FLAGS include this | ||||
# before all -I../deps/* for bundled code. This can cause build | # before all -I../deps/* for bundled code. This can cause build | ||||
# breakages if the dependency is installed in ${LOCALBASE}. The | # breakages if the dependency is installed in ${LOCALBASE}. The | ||||
# USES+=localbase # above will ensure that we pick up includes for real | # USES+=localbase # above will ensure that we pick up includes for real | ||||
# external dependencies. | # external dependencies. | ||||
${FIND} ${WRKSRC}/out -type f -print0 \ | ${FIND} ${WRKSRC}/out -type f -print0 \ | ||||
| ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g" | | ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g" | ||||
post-install: | post-install: | ||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node | ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node | ||||
.include <bsd.port.mk> | .include <bsd.port.mk> |