source: trunk/dports/devel/iojs/Portfile @ 136459

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

iojs: update to version 2.0.2

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.9 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 136459 2015-05-17 11:16:07Z ciserlohn@macports.org $
3
4PortSystem              1.0
5PortGroup               compiler_blacklist_versions 1.0
6
7name                    iojs
8version                 2.0.2
9
10categories              devel net
11platforms               darwin
12license                 {MIT BSD}
13maintainers             ciserlohn
14
15description             JavaScript I/O
16
17long_description        io.js is a JavaScript platform built on Chrome's V8 runtime. \
18                        This project began as a fork of Joyent's Node.js and is \
19                        compatible with the npm ecosystem.
20
21conflicts               nodejs nodejs-devel
22
23homepage                https://iojs.org/
24master_sites            ${homepage}dist/v${version}
25
26checksums               rmd160  941827c19707667c83a82e55e155fc76b0571466 \
27                        sha256  31cc88739c368ddc1c0d259ab8dc3f2040649f5e4e91456f6fdb3be8815e3ae3
28
29distname                iojs-v${version}
30
31depends_build           port:pkgconfig
32
33depends_lib             port:icu \
34                        port:python27 \
35                        port:openssl
36
37configure.python ${prefix}/bin/python2.7
38
39configure.args-append   --without-npm
40configure.args-append   --shared-openssl
41configure.args-append   --shared-openssl-includes=${prefix}/include/openssl
42configure.args-append   --shared-openssl-libpath=${prefix}/lib
43configure.args-append   --with-intl=system-icu
44
45proc rec_glob {basedir pattern} {
46    set files [glob -directory $basedir -nocomplain -type f $pattern]
47    foreach dir [glob -directory $basedir -nocomplain -type d *] {
48        eval lappend files [rec_glob $dir $pattern]
49    }
50    return $files
51}
52
53
54post-patch {
55    foreach f [concat ${worksrcpath}/configure \
56                   ${worksrcpath}/tools/gyp/gyp \
57                   ${worksrcpath}/node.gyp \
58                   ${worksrcpath}/deps/cares/gyp_cares \
59                   ${worksrcpath}/deps/npm/node_modules/node-gyp/gyp/gyp \
60                   [rec_glob ${worksrcpath} *.py]] {
61        reinplace -locale C "s|/usr/bin/env python|${configure.python}|" ${f}
62    }
63    foreach f [concat ${worksrcpath}/deps/npm/scripts/relocate.sh \
64                   ${worksrcpath}/deps/npm/node_modules/semver/bin/semver \
65                   ${worksrcpath}/deps/npm/node_modules/which/bin/which \
66                   ${worksrcpath}/deps/npm/test/packages/npm-test-array-bin/bin/array-bin \
67                   ${worksrcpath}/deps/npm/test/packages/npm-test-dir-bin/bin/dir-bin \
68                   ${worksrcpath}/tools/doc/node_modules/marked/bin/marked \
69                   [rec_glob ${worksrcpath} *.js]] {
70        reinplace -locale C "s|/usr/bin/env node|${prefix}/bin/node|" ${f}
71    }
72    foreach gypfile [rec_glob ${worksrcpath} *.gyp] {
73        reinplace -locale C "s|'python'|'${configure.python}'|" ${gypfile}
74    }
75}
76
77# V8 only supports ARM and IA-32 processors
78supported_archs         i386 x86_64
79
80universal_variant       no
81
82patchfiles-append       patch-common.gypi.diff
83
84# "V8 doesn't like cache."
85configure.ccache        no
86
87test.run                yes
88
89use_parallel_build      no
90
91switch $build_arch {
92    i386 {
93        configure.args-append   --dest-cpu=ia32
94    }
95    x86_64 {
96        configure.args-append   --dest-cpu=x64
97    }
98}
99
100build.args-append   CC=${configure.cc} \
101                    CXX=${configure.cxx} \
102                    CXX.host=${configure.cxx} \
103                    CPP=${configure.cpp} \
104                    CFLAGS="${configure.cflags}" \
105                    CXXFLAGS="${configure.cxxflags}" \
106                    LDFLAGS="${configure.ldflags}" \
107                    PYTHON=${configure.python} \
108                    V=1
109
110destroot {
111    set bindir ${destroot}${prefix}/bin
112    set libdir ${destroot}${prefix}/lib
113    set libndir ${libdir}/${name}
114    set libddir ${libdir}/dtrace
115    set incdir ${destroot}${prefix}/include/${name}
116    set docdir ${destroot}${prefix}/share/doc/${name}
117
118    xinstall -d ${bindir}
119    xinstall -d ${libdir}
120    xinstall -d ${libndir}
121    xinstall -d ${libddir}
122    xinstall -d ${incdir}
123    xinstall -d ${docdir}
124
125# install binaries
126    xinstall -m 755 -W ${worksrcpath} \
127        out/Release/${name} \
128        ${bindir}
129
130    ln -s ${name} ${bindir}/node
131
132# install headers
133    xinstall -m 644 -W ${worksrcpath} \
134        src/async-wrap-inl.h \
135        src/async-wrap.h \
136        src/base-object-inl.h \
137        src/base-object.h \
138        src/debug-agent.h \
139        src/env-inl.h \
140        src/env.h \
141        src/handle_wrap.h \
142        src/node.h \
143        src/node_buffer.h \
144        src/node_constants.h \
145        src/node_counters.h \
146        src/node_crypto.h \
147        src/node_crypto_bio.h \
148        src/node_crypto_clienthello-inl.h \
149        src/node_crypto_clienthello.h \
150        src/node_crypto_groups.h \
151        src/node_dtrace.h \
152        src/node_file.h \
153        src/node_http_parser.h \
154        src/node_i18n.h \
155        src/node_internals.h \
156        src/node_javascript.h \
157        src/node_object_wrap.h \
158        src/node_root_certs.h \
159        src/node_stat_watcher.h \
160        src/node_version.h \
161        src/node_watchdog.h \
162        src/node_wrap.h \
163        src/pipe_wrap.h \
164        src/smalloc.h \
165        src/spawn_sync.h \
166        src/stream_wrap.h \
167        src/string_bytes.h \
168        src/tcp_wrap.h \
169        src/tls_wrap.h \
170        src/tree.h \
171        src/tty_wrap.h \
172        src/udp_wrap.h \
173        src/util-inl.h \
174        src/util.h \
175        src/v8abbr.h \
176        deps/v8/include/v8-debug.h \
177        deps/v8/include/v8-profiler.h \
178        deps/v8/include/v8-testing.h \
179        deps/v8/include/v8.h \
180        deps/v8/include/v8-platform.h \
181        deps/v8/include/v8-util.h \
182        deps/v8/include/v8config.h \
183        deps/uv/include/uv.h \
184        deps/uv/include/uv-unix.h \
185        deps/uv/include/uv-darwin.h \
186        deps/uv/include/tree.h \
187        deps/uv/include/uv-threadpool.h \
188        deps/uv/include/pthread-fixes.h \
189        deps/cares/include/ares.h \
190        deps/cares/include/ares_version.h \
191        deps/cares/include/nameser.h \
192        ${incdir}
193
194# install dtrace script
195    xinstall -m 644 -W ${worksrcpath} \
196        src/node.d \
197        ${libddir}
198
199# install manpage
200    xinstall -m 644 -W ${worksrcpath} \
201        doc/${name}.1 \
202        ${destroot}${prefix}/share/man/man1
203
204# install docs
205    xinstall -m 644 -W ${worksrcpath} \
206        AUTHORS \
207        ChangeLog.md \
208        COLLABORATOR_GUIDE.md \
209        CONTRIBUTING.md \
210        GOVERNANCE.md \
211        LICENSE \
212        README.md \
213        ${docdir}
214}
215
216compiler.blacklist *gcc* *clang-2.* {*clang-3.[012]*} {clang < 500}
217
218if {${os.major} < 10} {
219    pre-fetch {
220        ui_error "${name} ${version} requires Mac OS X 10.6 or greater."
221        return -code error "incompatible Mac OS X version"
222    }
223}
224
225livecheck.url       ${homepage}dist/
226livecheck.type      regex
227livecheck.regex     {v(\d+\.\d+\.\d+)}
Note: See TracBrowser for help on using the repository browser.