Fetching contributors…
Cannot retrieve contributors at this time
160 lines (131 sloc) 6.59 KB
# -*- 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
PortSystem 1.0
PortGroup wxWidgets 1.0
PortGroup compiler_blacklist_versions 1.0
name erlang
version 21.0
categories lang erlang
maintainers {ciserlohn @ci42}
platforms darwin
license Apache-2
description The Erlang Programming Language
long_description Erlang is a programming language designed at the \
Ericsson Computer Science Laboratory. Open-source \
Erlang is being released to help encourage the spread \
of Erlang outside Ericsson. \
We are releasing free of charge: \
The entire source code of the current Erlang \
system. \
Extensive libraries of code for building robust \
fault-tolerant distributed applications. \
All with documentation. \
All the above software has been battle tested in a \
number of Ericsson products, for example the new \
Ericsson ATM switch.
# Parallel build doesn't work as per R13B01
use_parallel_build no
universal_variant no
distfiles otp_src_${version}${extract.suffix} \
otp_doc_man_${version}${extract.suffix} \
checksums otp_src_21.0.tar.gz \
rmd160 6a13f1f49fddeb4bb0d5567ffe31ab232d80855b \
sha256 c7d247c0cad2d2e718eaca2e2dff051136a1347a92097abf19ebf65ea2870131 \
size 84146631 \
otp_doc_man_21.0.tar.gz \
rmd160 ae8e36273f56b427372e96dd4764fe687bc2e455 \
sha256 10bf0e44b97ee8320c4868d5a4259c49d4d2a74e9c48583735ae0401f010fb31 \
size 1311959 \
otp_doc_html_21.0.tar.gz \
rmd160 80b7299c65783921029d3c6b61e873573244d120 \
sha256 fcc10885e8bf2eef14f7d6e150c34eeccf3fcf29c19e457b4fb8c203e57e153c \
size 32501093
worksrcdir otp_src_${version}
configure.args --prefix=${prefix} \
--enable-threads \
--enable-dynamic-ssl-lib \
--enable-smp-support \
--disable-hipe \
--without-ssl \
--without-odbc \
depends_build port:gawk
# ${prefix}/lib/erlang/erts-5.8.4/bin/beam.smp links with ncurses
depends_lib port:ncurses
# Erlang seems to have an on-again/off-again relationship with Clang.
# As of Xcode 4.2, it's off again.
# GCC 4.2 also fails:
compiler.blacklist {clang < 300} gcc-4.2
post-destroot {
system "tar -C ${destroot}${prefix}/lib/erlang -zxvf ${distpath}/otp_doc_html_${version}${extract.suffix}"
system "tar -C ${destroot}${prefix}/lib/erlang -zxvf ${distpath}/otp_doc_man_${version}${extract.suffix}"
set erts_dir erts-10.0
set erl_interface_dir erl_interface-3.10.3
set wx_dir wx-1.8.4
foreach x {dialyzer ear ecc elink epmd erl erlc escript run_erl start to_erl typer} { file delete -force ${destroot}${prefix}/bin/${x} }
foreach x {dialyzer erl erlc escript run_erl start to_erl typer} { system "ln -s ../lib/erlang/bin/${x} ${destroot}${prefix}/bin/${x}" }
file delete -force ${destroot}${prefix}/lib/erlang/bin/epmd
system "ln -s ../${erts_dir}/bin/epmd ${destroot}${prefix}/lib/erlang/bin/epmd"
system "ln -s ../lib/erlang/${erts_dir}/bin/epmd ${destroot}${prefix}/bin/epmd"
system "ln -s ../lib/erlang/lib/${erl_interface_dir}/bin/erl_call ${destroot}${prefix}/bin/erl_call"
platform darwin 10 {
# 10.6 (and 10.6.1) has a bad bug related to using dlopen in a thread.
# rdar://7209349 -
# This is a workaround.
patchfiles-append patch-erts_emulator_sys_unix_ddll.c.diff
platform darwin {
if {${configure.build_arch} eq "x86_64" || ${configure.build_arch} eq "ppc64"} {
configure.args-append --enable-darwin-64bit
} else {
configure.args-append --disable-darwin-64-bit
# TODO: not sure about the minimum version
if {${os.major} >= 10} {
# also "-framework Appkit"?
configure.ldflags-append -framework CoreFoundation
variant wxwidgets description {Build wxWidgets support} {
wxWidgets.use wxWidgets-3.0
patchfiles-delete patch-disable_wx.diff
depends_lib-append port:${wxWidgets.port}
depends_lib-append port:libGLU
configure.args-append --with-wxdir=${wxWidgets.wxdir}
configure.args-delete --without-wx
variant ssl description {Build SSL support} {
configure.args-delete --without-ssl
configure.args-append --with-ssl=${prefix}
configure.ldflags-append -lz
depends_lib-append path:lib/libssl.dylib:openssl
variant hipe conflicts nohipe description {Enable HiPE (native-code bytecode compiler)} {
configure.args-delete --disable-hipe
configure.args-append --enable-hipe
variant nohipe conflicts hipe description {Legacy compatibility variant} {}
if {[variant_isset nohipe]} {
default_variants -hipe
} else {
default_variants +hipe
variant odbc description {Build ODBC support} {
depends_lib-append port:unixODBC
configure.args-delete --without-odbc
configure.args-append --with-odbc=${prefix}
default_variants +ssl
# Livecheck
livecheck.type regex
livecheck.version ${version}
livecheck.url ${homepage}download/
livecheck.regex "otp_src_(\[0-9\]+\\.\[0-9\]+(\\.\[0-9\])?)\\.tar\\.gz"