# -*- 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 # $Id$ PortSystem 1.0 PortGroup compiler_blacklist_versions 1.0 name nodejs-devel version 0.11.13 categories devel net platforms darwin license {MIT BSD} maintainers ciserlohn 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 nodejs homepage http://nodejs.org/ master_sites ${homepage}dist/v${version} checksums rmd160 d0da6460bb85bdce56c8ccfb894be653121bac7c \ sha256 15d6e90c16adf907c0401cd5a77841b5264e90dfdaa1051d75184aa587fc8298 distname node-v${version} proc rec_glob {basedir pattern} { set files [glob -directory $basedir -nocomplain -type f $pattern] foreach dir [glob -directory $basedir -nocomplain -type d *] { eval lappend files [rec_glob $dir $pattern] } return $files } configure.python ${prefix}/bin/python2.7 post-patch { foreach f [concat ${worksrcpath}/configure \ ${worksrcpath}/tools/gyp/gyp \ ${worksrcpath}/deps/cares/gyp_cares \ ${worksrcpath}/deps/v8/build/gyp_v8 \ ${worksrcpath}/deps/v8/tools/mingw-generate-makefiles.sh \ [rec_glob ${worksrcpath} *.py]] { reinplace "s|/usr/bin/env python|${configure.python}|" ${f} } foreach gypfile [rec_glob ${worksrcpath} *.gyp] { reinplace "s|'python'|'${configure.python}'|" ${gypfile} } reinplace "s|/usr/bin/env node|${prefix}/bin/node|" ${worksrcpath}/tools/doc/node_modules/marked/bin/marked } configure.args --without-ssl configure.args-append --without-npm variant python25 conflicts python26 python27 description {Use python 2.5} { depends_lib-append port:python25 configure.python ${prefix}/bin/python2.5 } variant python26 conflicts python25 python27 description {Use python 2.6} { depends_lib-append port:python26 configure.python ${prefix}/bin/python2.6 } variant python27 conflicts python25 python26 description {Use python 2.7} { depends_lib-append port:python27 configure.python ${prefix}/bin/python2.7 } if {![variant_isset python25] && ![variant_isset python26]} { default_variants +python27 } variant ssl description {Add secure socket layer support} { depends_build-append port:pkgconfig depends_lib-append port:openssl configure.args-delete --without-ssl configure.args-append --shared-openssl configure.args-append --shared-openssl-includes=${prefix}/include/openssl configure.args-append --shared-openssl-libpath=${prefix}/lib } variant dtrace description {Add dtrace support} { configure.args-append --with-dtrace } default_variants +ssl # V8 only supports ARM and IA-32 processors supported_archs i386 x86_64 universal_variant no # "V8 doesn't like cache." configure.ccache no test.run yes use_parallel_build no switch $build_arch { i386 { configure.args-append --dest-cpu=ia32 } x86_64 { configure.args-append --dest-cpu=x64 } } build.args-append CC=${configure.cc} \ CXX=${configure.cxx} \ CPP=${configure.cpp} \ CFLAGS=${configure.cflags} \ CXXFLAGS=${configure.cxxflags} \ LDFLAGS=${configure.ldflags} \ PYTHON=${configure.python} \ V=1 destroot { set bindir ${destroot}${prefix}/bin set libdir ${destroot}${prefix}/lib set libndir ${libdir}/node set libddir ${libdir}/dtrace set incdir ${destroot}${prefix}/include/node set docdir ${destroot}${prefix}/share/doc/${name} xinstall -d ${bindir} xinstall -d ${libdir} xinstall -d ${libndir} xinstall -d ${libddir} xinstall -d ${incdir} xinstall -d ${docdir} # install binaries xinstall -m 755 -W ${worksrcpath} \ out/Release/node \ ${bindir} # install headers xinstall -m 644 -W ${worksrcpath} \ src/node.h \ src/node_buffer.h \ src/node_object_wrap.h \ src/node_version.h \ deps/v8/include/v8-debug.h \ deps/v8/include/v8-profiler.h \ deps/v8/include/v8-testing.h \ deps/v8/include/v8.h \ deps/v8/include/v8config.h \ deps/v8/include/v8stdint.h \ deps/uv/include/uv.h \ deps/uv/include/uv-unix.h \ deps/uv/include/uv-errno.h \ deps/uv/include/uv-darwin.h \ deps/uv/include/tree.h \ deps/uv/include/pthread-fixes.h \ deps/cares/include/ares.h \ deps/cares/include/ares_version.h \ ${incdir} # install dtrace script xinstall -m 644 -W ${worksrcpath} \ src/node.d \ ${libddir} # install manpage xinstall -m 644 -W ${worksrcpath} \ doc/node.1 \ ${destroot}${prefix}/share/man/man1 # install docs xinstall -m 644 -W ${worksrcpath} \ AUTHORS \ ChangeLog \ LICENSE \ README.md \ ${docdir} } compiler.blacklist *gcc* *clang-2.* {clang < 300} if {${os.major} < 10} { pre-fetch { ui_error "${name} ${version} requires Mac OS X 10.6 or greater." return -code error "incompatible Mac OS X version" } } livecheck.url ${homepage}dist/ livecheck.type regex livecheck.regex {v(\d+\.\d*[13579]\.\d+)}