# -*- 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 PortGroup legacysupport 1.1 # strndup, TARGET_OS_OSX legacysupport.newest_darwin_requires_legacy 10 name erlang version 27.0 revision 0 set doc_version ${version} categories lang erlang maintainers {ciserlohn @ci42} openmaintainer 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. homepage https://www.erlang.org/ master_sites https://www.erlang.org/download/ \ https://github.com/erlang/otp/releases/download/OTP-${version}/ universal_variant no distfiles otp_src_${version}${extract.suffix} \ otp_doc_man_${doc_version}${extract.suffix} \ otp_doc_html_${doc_version}${extract.suffix} checksums otp_src_${version}.tar.gz \ rmd160 b3d8528389c497ee547bf94b0ad2c33cbb0290de \ sha256 56412677466b756740fb2dbf4a8019e7c7cc38f01bd30c4cac5210214cafeef6 \ size 101038198 \ otp_doc_man_${doc_version}.tar.gz \ rmd160 14a6963ba477eabdd3e27324afa839686b07c364 \ sha256 95a2ea0e22ea4b7d58e74df145b52e2c85b642434391c814300824204a107c38 \ size 1764909 \ otp_doc_html_${doc_version}.tar.gz \ rmd160 a769c4f2f72019e00978a60a1ac002cd993a81f7 \ sha256 69c926bbf1b3fed93f361317a481910dae98f9700f58765b36c4875044bcc9d7 \ size 29506649 worksrcdir otp_src_${version} configure.args --prefix=${prefix} \ --enable-threads \ --enable-dynamic-ssl-lib \ --enable-smp-support \ --without-ssl \ --without-odbc \ --without-javac \ --without-wx depends_build-append \ port:gawk # ${prefix}/lib/erlang/erts-5.8.4/bin/beam.smp links with ncurses depends_lib-append 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: https://trac.macports.org/ticket/52507 compiler.blacklist {clang < 300} *gcc-4.* post-destroot { system "tar -C ${destroot}${prefix}/lib/erlang -zxvf [shellescape ${distpath}/otp_doc_html_${doc_version}${extract.suffix}]" system "tar -C ${destroot}${prefix}/lib/erlang -zxvf [shellescape ${distpath}/otp_doc_man_${doc_version}${extract.suffix}]" set erts_dir erts-12.2 set erl_interface_dir erl_interface-5.1 set wx_dir wx-2.1.1 foreach x {dialyzer ear ecc elink epmd erl erlc escript run_erl start to_erl typer} { delete ${destroot}${prefix}/bin/${x} } foreach x {dialyzer erl erlc escript run_erl start to_erl typer} { ln -s ../lib/erlang/bin/${x} ${destroot}${prefix}/bin/${x} } delete ${destroot}${prefix}/lib/erlang/bin/epmd ln -s ../${erts_dir}/bin/epmd ${destroot}${prefix}/lib/erlang/bin/epmd ln -s ../lib/erlang/${erts_dir}/bin/epmd ${destroot}${prefix}/bin/epmd 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 - http://www.openradar.appspot.com/7209349 # This is a workaround. patchfiles-append patch-erts_emulator_sys_unix_ddll.c.diff } platform darwin { if {${configure.build_arch} in [list arm64 ppc64 x86_64]} { configure.args-append --enable-darwin-64bit } else { # https://github.com/erlang/otp/issues/8506 configure.args-append --disable-darwin-64-bit \ --disable-year2038 } # TODO: not sure about the minimum version if {${os.major} >= 10} { # also "-framework Appkit"? configure.ldflags-append -framework CoreFoundation } } # FIXME: allow building with wxGTK on older systems. # See: https://github.com/erlang/otp/issues/8370 variant wxwidgets description {Build wxWidgets support} { wxWidgets.use wxWidgets-3.2 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} { PortGroup openssl 1.0 openssl.branch 3 configure.args-delete --without-ssl configure.args-append --with-ssl=[openssl::install_area] configure.ldflags-append -lz } 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.type regex livecheck.version ${version} livecheck.url ${homepage}download/ livecheck.regex "otp_src_(\[0-9\]+\\.\[0-9\]+(\\.\[0-9\])?)\\.tar\\.gz"