pantry/projects/erlang.org/package.yml
Max Howell 81e7a5e16f
pkgx
2023-10-01 14:44:42 -04:00

94 lines
1.9 KiB
YAML

distributable:
url: https://github.com/erlang/otp/releases/download/OTP-{{ version.raw }}/otp_src_{{ version.raw }}.tar.gz
strip-components: 1
provides:
- bin/ct_run
- bin/dialyzer
- bin/epmd
- bin/erl
- bin/erlc
- bin/escript
- bin/run_erl
- bin/to_erl
- bin/typer
interprets:
extensions: erl
args: escript
versions:
github: erlang/otp/releases
strip: /^OTP /
dependencies:
openssl.org: ^1.1
invisible-island.net/ncurses: '*'
runtime:
env:
ERL_ROOTDIR: ${{prefix}}/lib/erlang
build:
dependencies:
linux/x86-64:
# https://github.com/llvm/llvm-project/issues/56854
llvm.org: '<15'
perl.org: '>=5'
script: |
export ERL_TOP=$(pwd)
./configure $ARGS
make -j {{hw.concurrency}}
make install
env:
CC: cc
CXX: c++
LD: ld
CFLAGS: -O2 -g $CFLAGS
ARGS:
- --disable-debug
- --disable-silent-rules
- --prefix={{prefix}}
- --enable-dynamic-ssl-lib
- --enable-hipe
- --enable-smp-support
- --enable-threads
- --enable-pie
- --with-ssl={{deps.openssl.org.prefix}}
- --without-javac
darwin:
ARGS:
- --enable-darwin-64bit
- --enable-kernel-poll
- --with-dynamic-trace=dtrace
test:
script: |
epmd -kill || true
epmd -daemon -address 127.0.0.1 -relaxed_command_check
test "$(escript $FIXTURE 10)" = "factorial 10 = 3628800"
epmd -kill || true
env:
ERL_DIST_PORT: 8001
fixture: |
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable -sname factorial -mnesia debug verbose
main([String]) ->
try
N = list_to_integer(String),
F = fac(N),
io:format("factorial ~w = ~w\n", [N,F])
catch
_:_ ->
usage()
end;
main(_) ->
usage().
usage() ->
io:format("usage: factorial integer\n").
fac(0) -> 1;
fac(N) -> N * fac(N-1).