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

Last change on this file since 135232 was 135232, checked in by ryandesign@…, 5 years ago

icu: update to 55.1

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