mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-05-13 17:24:19 +02:00
129 lines
2.9 KiB
Text
129 lines
2.9 KiB
Text
# Contributor: Borys Zhukov <mp5@mp5.im>
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Contributor: omni <omni+alpine@hack.org>
|
|
# Maintainer: Celeste <cielesti@protonmail.com>
|
|
maintainer="Celeste <cielesti@protonmail.com>"
|
|
pkgname=ocaml5
|
|
pkgver=5.3.0
|
|
pkgrel=0
|
|
pkgdesc="Main implementation of the Caml programming language"
|
|
url="https://ocaml.org/"
|
|
# loongarch64: no upstream support, unofficial port provided as ocaml5-loongarch
|
|
arch="all !loongarch64"
|
|
license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
|
|
depends="$pkgname-runtime=$pkgver-r$pkgrel gcc"
|
|
checkdepends="parallel"
|
|
subpackages="
|
|
$pkgname-doc
|
|
$pkgname-ocamldoc
|
|
$pkgname-compiler-libs:_compiler_libs
|
|
$pkgname-runtime
|
|
"
|
|
source="https://caml.inria.fr/pub/distrib/ocaml-${pkgver%.*}/ocaml-$pkgver.tar.xz"
|
|
builddir="$srcdir/ocaml-$pkgver"
|
|
|
|
# Current native compiler support in 5.3.x
|
|
case "$CARCH" in
|
|
x86_64|aarch64|riscv64|s390x|ppc64le)
|
|
_native_compiler=true
|
|
;;
|
|
*)
|
|
_native_compiler=false
|
|
;;
|
|
esac
|
|
|
|
build() {
|
|
local make_target extra_conf_opts
|
|
if $_native_compiler; then
|
|
make_target="world.opt"
|
|
extra_conf_opts="
|
|
--enable-native-compiler
|
|
--enable-native-toplevel
|
|
--disable-installing-bytecode-programs
|
|
"
|
|
msg "Building native compiler for $CARCH"
|
|
else
|
|
make_target="world"
|
|
extra_conf_opts="
|
|
--disable-native-compiler
|
|
--disable-native-toplevel
|
|
--enable-installing-bytecode-programs
|
|
"
|
|
msg "Building bytecode compiler for $CARCH"
|
|
fi
|
|
|
|
want_check && extra_conf_opts="
|
|
$extra_conf_opts
|
|
--enable-ocamltest
|
|
"
|
|
|
|
./configure \
|
|
--prefix=/usr \
|
|
--bindir=/usr/bin \
|
|
--libdir=/usr/lib/ocaml \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/$pkgname \
|
|
--disable-installing-source-artifacts \
|
|
$extra_conf_opts \
|
|
CC="${CC:-gcc}"
|
|
make $make_target
|
|
}
|
|
|
|
check() {
|
|
make ocamltest
|
|
local i; for i in $(seq 0 5); do
|
|
[ $i -eq 0 ] || msg "Retrying ($i/5)..."
|
|
if [ $i -lt 3 ]; then
|
|
make -C testsuite parallel && return 0
|
|
else
|
|
# If tests don't succeed after 3 retries, assume we
|
|
# don't have enough resources to run them parallelly
|
|
make -C testsuite all && return 0
|
|
fi
|
|
sleep 5
|
|
done
|
|
return 1
|
|
}
|
|
|
|
package() {
|
|
make DESTDIR="$pkgdir" install
|
|
}
|
|
|
|
ocamldoc() {
|
|
pkgdesc="$pkgdesc (documentation generator)"
|
|
depends="$pkgname=$pkgver-r$pkgrel"
|
|
|
|
amove usr/bin/ocamldoc*
|
|
amove usr/lib/ocaml/ocamldoc
|
|
}
|
|
|
|
_compiler_libs() {
|
|
pkgdesc="$pkgdesc (compiler libraries)"
|
|
depends="$pkgname=$pkgver-r$pkgrel"
|
|
provides="$pkgname-dev=$pkgver-r$pkgrel"
|
|
|
|
amove usr/lib/ocaml/compiler-libs
|
|
}
|
|
|
|
runtime() {
|
|
pkgdesc="$pkgdesc (runtime environment)"
|
|
depends=
|
|
|
|
amove usr/bin/ocamlrun*
|
|
amove usr/lib/ocaml/ld.conf
|
|
|
|
local i; for i in \
|
|
'*.cmo' \
|
|
'*.cmi' \
|
|
'*.cma' \
|
|
'stublibs' \
|
|
'threads/*.cmi' \
|
|
'threads/*.cma'
|
|
do
|
|
amove "usr/lib/ocaml/$i"
|
|
done
|
|
}
|
|
|
|
sha512sums="
|
|
d2f030d4b318d9893895ea7c77df9ae2c74c2875084b755b0d2f7e20a5311f77aa3114c818b7a789573fa0c1a34ff4aee49812f3909149ab17dd681d76c24103 ocaml-5.3.0.tar.xz
|
|
"
|