diff options
Diffstat (limited to 'www/node24/Makefile')
-rw-r--r-- | www/node24/Makefile | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/www/node24/Makefile b/www/node24/Makefile new file mode 100644 index 000000000000..67d17435d3d7 --- /dev/null +++ b/www/node24/Makefile @@ -0,0 +1,104 @@ +PORTNAME= node +PORTVERSION= ${NODEJS_PORTVERSION} +DISTVERSIONPREFIX= v +CATEGORIES= www +MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/ +PKGNAMESUFFIX= ${PORTVERSION:R:R} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= V8 JavaScript for client and server +WWW= https://nodejs.org/ \ + https://github.com/nodejs/node + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BROKEN_SSL= libressl libressl-devel +BROKEN_SSL_REASON= Node.js ${PORTVERSION:R:R}.x requires OpenSSL or the BUNDLED_SSL option enabled +ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le + +BUILD_DEPENDS= objdump:devel/binutils +LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ + libcares.so:dns/c-ares \ + libicui18n.so:devel/icu \ + libnghttp2.so:www/libnghttp2 \ + libnghttp3.so:www/libnghttp3 \ + libngtcp2.so:net/libngtcp2 \ + libsimdjson.so:devel/simdjson \ + libuv.so:devel/libuv \ + libzstd.so:archivers/zstd + +USES= compiler:c++11-lang gmake localbase pkgconfig python:build shebangfix tar:xz + +CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \ + --shared-brotli \ + --shared-cares \ + --shared-libuv \ + --shared-nghttp2 \ + --shared-nghttp3 \ + --shared-ngtcp2 \ + --shared-simdjson \ + --shared-zlib \ + --shared-zstd \ + --with-intl=system-icu \ + --without-npm +HAS_CONFIGURE= yes +MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \ + CFLAGS.host="${CFLAGS}" \ + CXX.host="${CCACHE_BIN} ${CXX}" \ + CXXFLAGS.host="${CXXFLAGS}" \ + LDFLAGS.host="${LDFLAGS}" \ + LINK.host="${CXX}" +REINPLACE_ARGS= -i '' + +CONFLICTS_INSTALL= node[0-9][0-9] + +SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \ + deps/v8/tools/*.py \ + tools/*.py \ + tools/inspector_protocol/*.py + +OPTIONS_DEFINE= BUNDLED_SSL DOCS JIT +OPTIONS_DEFAULT=JIT +OPTIONS_SUB= yes +BUNDLED_SSL_DESC= Use bundled OpenSSL implementation from node.js +JIT_DESC= Use Just In Time compiler + +BUNDLED_SSL_CONFIGURE_OFF= --openssl-use-def-ca-store --shared-openssl +BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss +BUNDLED_SSL_USES_OFF= ssl +JIT_CONFIGURE_OFF= --v8-lite-mode + +.include "Makefile.version" +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64 +CONFIGURE_ARGS+=--openssl-no-asm +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/tools/v8_gypfiles/v8.gyp +# Clean up bundled libraries + @${RM} -r ${WRKSRC}/deps/brotli/ + @${RM} -r ${WRKSRC}/deps/cares/ + @${RM} -r ${WRKSRC}/deps/nghttp2/ + @${RM} -r ${WRKSRC}/deps/ngtcp2/ + @${RM} -r ${WRKSRC}/deps/npm/ + @${RM} -r ${WRKSRC}/deps/simdjson/ + @${RM} -r ${WRKSRC}/deps/uv/ + @${RM} -r ${WRKSRC}/deps/zlib/ + @${RM} -r ${WRKSRC}/deps/zstd/ + +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> |