# -*- 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.2 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 05a539d1e30d7cae4d2d718d1a81de2c1de099a1 \ sha256 b66c2cc4fa2c87211b668e4486d4f3e5b1b6705698873ea3e6d9850801ac992d \ size 101364008 \ otp_doc_man_${doc_version}.tar.gz \ rmd160 50cbc2462937de2708620c6cd1247d7f9619526f \ sha256 e6ee8aca110d239f45df289a5e9d3ba670f6574df363c291444e7d6f20e77189 \ size 44960 \ otp_doc_html_${doc_version}.tar.gz \ rmd160 95815e7f95554240b1b94d034f1464a8f31f1bd5 \ sha256 b403ba1fb75ea7769242b00cd2480919c46d7fc9a5ebab14a553d86cb00d3f07 \ size 29949824 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 [glob -tails -directory ${destroot}${prefix}/lib/erlang/lib/ erts-*] set erl_interface_dir [glob -tails -directory ${destroot}${prefix}/lib/erlang/lib/ erl_interface-*] 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 } # asmjit fix for Sonoma annoying popup with JIT on amd64 # Upstream didn't want to include it yet patchfiles-append patch-asmjit-dualmap.diff } # 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}downloads/ livecheck.regex "otp_src_(\[0-9\]+\\.\[0-9\]+(\\.\[0-9\])?)\\.tar\\.gz"