mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-31 10:46:16 +00:00
bd8376fbfc
Create a new port for the latest Node.js v16.x release, which will become the v16.x LTS release line. Update CONFLICTS for the existing Node.js ports to include the new node16 port and remove non-existent ports. https://nodejs.org/en/blog/release/v16.12.0/ MFH: 2021Q4 Sponsored by: Miles AS
104 lines
3.2 KiB
Makefile
104 lines
3.2 KiB
Makefile
PORTNAME= node
|
|
PORTVERSION= 10.24.1
|
|
DISTVERSIONPREFIX= v
|
|
PORTREVISION= 1
|
|
CATEGORIES= www
|
|
MASTER_SITES= http://nodejs.org/dist/v${PORTVERSION}/
|
|
PKGNAMESUFFIX= 10
|
|
|
|
MAINTAINER= bhughes@FreeBSD.org
|
|
COMMENT= V8 JavaScript for client and server
|
|
|
|
LICENSE= MIT
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
DEPRECATED= Node.js v10.x reaches end-of-life on 2021-04-30, see https://github.com/nodejs/Release
|
|
EXPIRATION_DATE= 2021-04-30
|
|
BROKEN_SSL= libressl libressl-devel
|
|
BROKEN_SSL_REASON= Node.js 10.x LTS requires OpenSSL 1.1.x or the BUNDLED_SSL option enabled
|
|
ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
|
|
|
|
USES= compiler:c++11-lib gmake python:2.7,build pkgconfig \
|
|
localbase shebangfix
|
|
|
|
OPTIONS_DEFINE= BUNDLED_SSL DOCS NLS DTRACE
|
|
OPTIONS_DEFAULT= DTRACE
|
|
OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}}
|
|
OPTIONS_SUB= yes
|
|
|
|
.if !exists(/usr/sbin/dtrace)
|
|
OPTIONS_EXCLUDE+= DTRACE
|
|
.endif
|
|
|
|
OPTIONS_EXCLUDE_aarch64= DTRACE
|
|
# dt_modtext:/usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c(820): arm not implemented
|
|
OPTIONS_EXCLUDE_armv6= DTRACE
|
|
OPTIONS_EXCLUDE_armv7= DTRACE
|
|
OPTIONS_EXCLUDE_powerpc64= DTRACE
|
|
OPTIONS_EXCLUDE_powerpc64le= DTRACE
|
|
|
|
BUNDLED_SSL_DESC= Use node.js's bundled OpenSSL implementation
|
|
BUNDLED_SSL_USES_OFF= ssl
|
|
BUNDLED_SSL_CONFIGURE_OFF= --shared-openssl --openssl-use-def-ca-store
|
|
BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss
|
|
|
|
NLS_CONFIGURE_ON= --with-intl=system-icu
|
|
NLS_BUILD_DEPENDS= icu>=64.2:devel/icu
|
|
NLS_LIB_DEPENDS= libicui18n.so:devel/icu
|
|
|
|
DTRACE_CONFIGURE_ON= --with-dtrace
|
|
|
|
HAS_CONFIGURE= yes
|
|
|
|
CONFLICTS_INSTALL= node14-[0-9]* node16-[0-9]* node-[0-9]*
|
|
|
|
CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \
|
|
--without-npm \
|
|
--shared-cares \
|
|
--shared-libuv \
|
|
--shared-nghttp2 \
|
|
--shared-zlib
|
|
|
|
SHEBANG_FILES= tools/specialize_node_d.py tools/genv8constants.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+= c-ares>=1.15.0:dns/c-ares\
|
|
libuv>=1.34.2:devel/libuv \
|
|
libnghttp2>=1.41.0:www/libnghttp2 \
|
|
objdump:devel/binutils
|
|
LIB_DEPENDS+= libcares.so:dns/c-ares\
|
|
libuv.so:devel/libuv \
|
|
libnghttp2.so:www/libnghttp2
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
.if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64 && ${ARCH} != i386
|
|
CONFIGURE_ARGS+=--openssl-no-asm
|
|
.elif (defined(PPC_ABI) && ${PPC_ABI} == ELFv2) || ${ARCH} == powerpc64le
|
|
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-common.gypi
|
|
.endif
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \
|
|
${WRKSRC}/deps/v8/gypfiles/v8.gyp
|
|
|
|
post-configure:
|
|
# Post-process Makefile and *.mk files created by node-gyp and remove
|
|
# all occurrences of -I${LOCALBASE}/include. C*FLAGS include this
|
|
# before all -I../deps/* for bundled code. This can cause build
|
|
# breakages if the dependency is installed in ${LOCALBASE}. The
|
|
# USES+=localbase # above will ensure that we pick up includes for real
|
|
# external dependencies.
|
|
${FIND} ${WRKSRC}/out -type f -print0 \
|
|
| ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g"
|
|
|
|
post-install:
|
|
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node
|
|
|
|
.include <bsd.port.mk>
|