# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortGroup compiler_blacklist_versions 1.0
maintainers {ciserlohn @ci42} openmaintainer
description Evented I/O for V8 JavaScript
long_description Node's goal is to provide an easy way to build scalable network programs in JavaScript. \
Node is similar in design to and influenced by systems like Ruby's Event \
Machine or Python's Twisted. Node takes the event model a bit further-it \
presents the event loop as a language construct instead of as a library.
conflicts nodejs4 nodejs5 nodejs6 nodejs7 nodejs8 nodejs9 nodejs10
homepage http://nodejs.org/
master_sites ${homepage}dist/v${version}
checksums rmd160 e54592ded389c46687afc20306a484ba465db043 \
sha256 50279fb2cfea1eefc7d1a3ce5c4fecdd16131a4397867d1af839d47cda556d0a \
distname node-v${version}
depends_build port:pkgconfig
depends_lib port:python27
# path:lib/libssl.dylib:openssl
proc rec_glob {basedir pattern} {
set files [glob -directory $basedir -nocomplain -type f $pattern]
foreach dir [glob -directory $basedir -nocomplain -type d *] {
lappend files {*}[rec_glob $dir $pattern]
configure.python ${prefix}/bin/python2.7
patchfiles patch-common.gypi.diff
foreach f [concat ${worksrcpath}/configure \
${worksrcpath}/tools/gyp/gyp \
${worksrcpath}/deps/cares/gyp_cares \
${worksrcpath}/deps/v8/gypfiles/gyp_v8 \
${worksrcpath}/deps/v8/tools/objdump-v8 \
[rec_glob ${worksrcpath} *.py]] {
reinplace -q "s|/usr/bin/env python|${configure.python}|" ${f}
foreach gypfile [rec_glob ${worksrcpath} *.gyp*] {
reinplace -q "s|'python'|'${configure.python}'|" ${gypfile}
reinplace "s|python|${configure.python}|" ${worksrcpath}/deps/v8/gypfiles/toolchain.gypi
configure.args-append --without-npm
configure.args-append --with-intl=small-icu
#configure.args-append --shared-openssl
#configure.args-append --shared-openssl-includes=${prefix}/include/openssl
#configure.args-append --shared-openssl-libpath=${prefix}/lib
# V8 only supports ARM and IA-32 processors
supported_archs i386 x86_64
# "V8 doesn't like cache."
configure.args-append --dest-cpu=ia32
configure.args-append --dest-cpu=x64