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

Last change on this file since 139229 was 139229, checked in by jeremyhu@…, 4 years ago

misc: Change port:openssl dependency to path:lib/libssl.dylib:openssl

This should allow usage of libressl as a replacement for openssl in relevant
ports. Not all ports have been tested, but libressl aims for API
compatibility with OpenSSL, so it is expected to work.

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