freebsd-ports/www/node/Makefile
Bradley T. Hughes b9f8225169 www/node: Update 9.10.0 -> 9.10.1
No changes from the previous verison. This release ensures that the
hosted binaries from the Node.js project adhere to the platform support
contract, which does not apply to the FreeBSD port and packages.

MFH:		2018Q2
2018-04-01 09:20:17 +00:00

108 lines
2.9 KiB
Makefile

# $FreeBSD$
PORTNAME= node
PORTVERSION= 9.10.1
DISTVERSIONPREFIX= v
CATEGORIES= www
MASTER_SITES= http://nodejs.org/dist/v${PORTVERSION}/
MAINTAINER= bhughes@FreeBSD.org
COMMENT= V8 JavaScript for client and server
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64
OPTIONS_DEFINE= BUNDLED_SSL DOCS NLS DTRACE
OPTIONS_DEFAULT=DTRACE
OPTIONS_SUB= yes
OPTIONS_DEFAULT_FreeBSD_10= BUNDLED_SSL
OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}}
.if !exists(/usr/sbin/dtrace)
OPTIONS_EXCLUDE+= DTRACE
.endif
OPTIONS_EXCLUDE_FreeBSD_10= DTRACE
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
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_LIB_DEPENDS= libicui18n.so:devel/icu
DTRACE_CONFIGURE_ON= --with-dtrace
USES= compiler:c++11-lib gmake python:2.7,build pkgconfig \
localbase shebangfix
HAS_CONFIGURE= yes
CONFLICTS_INSTALL= node[4568]-[0-9]*
CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \
--without-npm \
--shared-cares \
--shared-libuv \
--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} CXX.host=${CXX} LINK.host=${CXX} LINK.target=${CXX}
LIB_DEPENDS+= libcares.so:dns/c-ares\
libuv.so:devel/libuv
.include <bsd.port.options.mk>
.if empty(PORT_OPTIONS:MBUNDLED_SSL)
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100085 && ${SSL_DEFAULT} == base
IGNORE= node.js requires openssl 1.0.2, add DEFAULT_VERSIONS+=ssl=openssl to /etc/make.conf or enable BUNDLED_SSL option
.endif
.if !empty(SSL_DEFAULT:Mlibressl*)
IGNORE= cannot build node.js with LibreSSL. You must enable BUNDLED_SSL
.endif
.endif
.include <bsd.port.pre.mk>
.if ${ARCH} == armv6 || ${ARCH} == armv7
CONFIGURE_ARGS+=--openssl-no-asm
.endif
.if ${COMPILER_TYPE} == gcc
# GCC does not expose std::snprintf() without this define
CXXFLAGS+= -D_GLIBCXX_USE_C99
.endif
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \
${WRKSRC}/deps/v8/src/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.post.mk>