# -*- 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 26.2.3 revision 0 # There are no dedicated docs for the current version. set doc_version 26.1 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}/ # Parallel build doesn't work as per R13B01 use_parallel_build no 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 5f1147e7243d9e704815d7d6a4a1cfbc1657b4dd \ sha256 2c4e61b24fb1c131d9f30cfe2415320899180debdb71fb59195c72bd9a4ab625 \ size 106140573 \ otp_doc_man_${doc_version}.tar.gz \ rmd160 aa1427c5c0cd8a44ce07bc10853e3a6470c795f3 \ sha256 2320a0af58119497bc3c0e6d8f08fbb0c6db5778a841b96a7f984e40c321b3ee \ size 1745090 \ otp_doc_html_${doc_version}.tar.gz \ rmd160 215c536fad110fa14cbbedba91f1034677882c0a \ sha256 1cb9017ae517c83a2f33ec5c7e9f205807b199e109405ab06bc96d8254481d2b \ size 41512493 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 { 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 } } # 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 1.1 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"