# -*- 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.1.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 81fd4dce5ef82df0e986a0299ce27c871cb211fe \ sha256 1772e9fa07b2b020ed5911d6ce78b251dfb6ed8509ed7de9d372e96b87251d14 \ size 101338359 \ otp_doc_man_${doc_version}.tar.gz \ rmd160 9bae6ac9e6cdb09e0f1e7de8acfa504513f7c271 \ sha256 76f01e6833d841e614929a2b7426b0b08b32daae985ee3e81f2dedb17d367048 \ size 45065 \ otp_doc_html_${doc_version}.tar.gz \ rmd160 a9c21d599f5de594a67b5005234c23c773634f7f \ sha256 a46eea48eab01404eddd649f044bd30f5e4fb432df94be26345410590d1c3f53 \ size 29910123 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}download/ livecheck.regex "otp_src_(\[0-9\]+\\.\[0-9\]+(\\.\[0-9\])?)\\.tar\\.gz"