source: trunk/dports/devel/nodejs/Portfile @ 144943

Last change on this file since 144943 was 144943, checked in by ciserlohn@…, 3 years ago

nodejs: update to version 4.2.6

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.4 KB
Line 
1# -*- 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
2# $Id: Portfile 144943 2016-01-22 08:49:25Z ciserlohn@macports.org $
3
4PortSystem              1.0
5PortGroup               compiler_blacklist_versions 1.0
6PortGroup               conflicts_build 1.0
7
8# see https://github.com/nodejs/node/issues/2637
9conflicts_build         c-ares v8
10
11name                    nodejs
12version                 4.2.6
13
14categories              devel net
15platforms               darwin
16license                 {MIT BSD}
17maintainers             ciserlohn
18
19description             Evented I/O for V8 JavaScript
20
21long_description        Node's goal is to provide an easy way to build scalable network programs in JavaScript. \
22                        Node is similar in design to and influenced by systems like Ruby's Event \
23                        Machine or Python's Twisted. Node takes the event model a bit further-it \
24                        presents the event loop as a language construct instead of as a library.
25
26conflicts               nodejs-devel iojs
27
28homepage                http://nodejs.org/
29master_sites            ${homepage}dist/v${version}
30
31checksums               rmd160  174fa292da5b84df6aeae105c5965f00b9a07c8f \
32                        sha256  ea5e357db8817052b17496d607c719d809ed1383e8fcf7c8ffc5214e705aefdd
33
34distname                node-v${version}
35
36depends_build           port:pkgconfig
37
38depends_lib             port:icu
39
40proc rec_glob {basedir pattern} {
41    set files [glob -directory $basedir -nocomplain -type f $pattern]
42    foreach dir [glob -directory $basedir -nocomplain -type d *] {
43        eval lappend files [rec_glob $dir $pattern]
44    }
45    return $files
46}
47
48configure.python ${prefix}/bin/python2.7
49
50post-patch {
51    foreach f [concat ${worksrcpath}/configure \
52                   ${worksrcpath}/tools/gyp/gyp \
53                   ${worksrcpath}/deps/cares/gyp_cares \
54                   ${worksrcpath}/deps/v8/build/gyp_v8 \
55                   ${worksrcpath}/deps/v8/tools/mingw-generate-makefiles.sh \
56                   [rec_glob ${worksrcpath} *.py]] {
57        reinplace "s|/usr/bin/env python|${configure.python}|" ${f}
58    }
59    foreach gypfile [rec_glob ${worksrcpath} *.gyp*] {
60        reinplace "s|'python'|'${configure.python}'|" ${gypfile}
61    }
62    reinplace "s|python|${configure.python}|" ${worksrcpath}/deps/v8/build/toolchain.gypi
63    reinplace "s|/usr/bin/env node|${prefix}/bin/node|" ${worksrcpath}/tools/doc/node_modules/marked/bin/marked
64}
65
66configure.args          --without-ssl
67configure.args-append   --without-npm
68configure.args-append   --with-intl=system-icu
69
70# TODO: Remove after 2015-12-27.
71variant python25 requires python27 description {Legacy variant} {}
72
73variant python26 conflicts python27 description {Use python 2.6} {
74    depends_lib-append  port:python26
75    configure.python    ${prefix}/bin/python2.6
76}
77
78variant python27 conflicts python26 description {Use python 2.7} {
79    depends_lib-append  port:python27
80    configure.python    ${prefix}/bin/python2.7
81}
82
83if {![variant_isset python25] && ![variant_isset python26]} {
84    default_variants +python27
85}
86
87variant ssl description {Add secure socket layer support} {
88    depends_build-append    port:pkgconfig
89    depends_lib-append      path:lib/libssl.dylib:openssl
90    configure.args-delete   --without-ssl
91    configure.args-append   --shared-openssl
92    configure.args-append   --shared-openssl-includes=${prefix}/include/openssl
93    configure.args-append   --shared-openssl-libpath=${prefix}/lib
94}
95
96# TODO: Remove after 2016-07-08
97variant dtrace description {Legacy variant} {}
98
99default_variants        +ssl
100
101# V8 only supports ARM and IA-32 processors
102supported_archs         i386 x86_64
103
104universal_variant       no
105
106patchfiles-append       patch-common.gypi.diff
107
108# "V8 doesn't like cache."
109configure.ccache        no
110
111test.run                yes
112
113use_parallel_build      no
114
115switch $build_arch {
116    i386 {
117        configure.args-append   --dest-cpu=ia32
118    }
119    x86_64 {
120        configure.args-append   --dest-cpu=x64
121    }
122}
123
124build.args-append   CC=${configure.cc} \
125                    CXX=${configure.cxx} \
126                    CXX.host=${configure.cxx} \
127                    CPP=${configure.cpp} \
128                    CFLAGS="${configure.cflags}" \
129                    CXXFLAGS="${configure.cxxflags}" \
130                    LDFLAGS="${configure.ldflags}" \
131                    PYTHON=${configure.python} \
132                    V=1
133
134destroot {
135    set bindir ${destroot}${prefix}/bin
136    set libdir ${destroot}${prefix}/lib
137    set libndir ${libdir}/node
138    set libddir ${libdir}/dtrace
139    set incdir ${destroot}${prefix}/include/node
140    set docdir ${destroot}${prefix}/share/doc/${name}
141
142    xinstall -d ${bindir}
143    xinstall -d ${libdir}
144    xinstall -d ${libndir}
145    xinstall -d ${libddir}
146    xinstall -d ${incdir}
147    xinstall -d ${docdir}
148
149# install binaries
150    xinstall -m 755 -W ${worksrcpath} \
151        out/Release/node \
152        ${bindir}
153
154# install headers
155    xinstall -m 644 -W ${worksrcpath} \
156        src/async-wrap-inl.h \
157        src/async-wrap.h \
158        src/base-object-inl.h \
159        src/base-object.h \
160        src/env-inl.h \
161        src/env.h \
162        src/handle_wrap.h \
163        src/node.h \
164        src/node_buffer.h \
165        src/node_constants.h \
166        src/node_counters.h \
167        src/node_crypto.h \
168        src/node_crypto_bio.h \
169        src/node_crypto_clienthello-inl.h \
170        src/node_crypto_clienthello.h \
171        src/node_crypto_groups.h \
172        src/node_dtrace.h \
173        src/node_file.h \
174        src/node_http_parser.h \
175        src/node_i18n.h \
176        src/node_internals.h \
177        src/node_javascript.h \
178        src/node_object_wrap.h \
179        src/node_root_certs.h \
180        src/node_stat_watcher.h \
181        src/node_version.h \
182        src/node_watchdog.h \
183        src/node_wrap.h \
184        src/pipe_wrap.h \
185        src/spawn_sync.h \
186        src/stream_wrap.h \
187        src/string_bytes.h \
188        src/tcp_wrap.h \
189        src/tls_wrap.h \
190        src/tree.h \
191        src/tty_wrap.h \
192        src/udp_wrap.h \
193        src/util-inl.h \
194        src/util.h \
195        src/v8abbr.h \
196        deps/v8/include/v8-debug.h \
197        deps/v8/include/v8-profiler.h \
198        deps/v8/include/v8-testing.h \
199        deps/v8/include/v8.h \
200        deps/v8/include/v8-platform.h \
201        deps/v8/include/v8-util.h \
202        deps/v8/include/v8config.h \
203        deps/uv/include/uv.h \
204        deps/uv/include/uv-unix.h \
205        deps/uv/include/uv-darwin.h \
206        deps/uv/include/tree.h \
207        deps/uv/include/uv-threadpool.h \
208        deps/uv/include/pthread-fixes.h \
209        deps/cares/include/ares.h \
210        deps/cares/include/ares_version.h \
211        deps/cares/include/nameser.h \
212        ${incdir}
213
214# install dtrace script
215    xinstall -m 644 -W ${worksrcpath} \
216        src/node.d \
217        ${libddir}
218
219# install manpage
220    xinstall -m 644 -W ${worksrcpath} \
221        doc/node.1 \
222        ${destroot}${prefix}/share/man/man1
223
224# install docs
225    xinstall -m 644 -W ${worksrcpath} \
226        AUTHORS \
227        CHANGELOG.md \
228        COLLABORATOR_GUIDE.md \
229        CONTRIBUTING.md \
230        GOVERNANCE.md \
231        LICENSE \
232        README.md \
233        ${docdir}
234}
235
236compiler.blacklist *gcc* {clang < 300}
237
238if {${os.major} < 10} {
239    pre-fetch {
240        ui_error "${name} ${version} requires Mac OS X 10.6 or greater."
241        return -code error "incompatible Mac OS X version"
242    }
243}
244
245livecheck.url       ${homepage}dist/
246livecheck.type      regex
247livecheck.regex     {v(4\.\d+\.\d+)}
Note: See TracBrowser for help on using the repository browser.