# Template file for 'sbcl'
pkgname=sbcl
version=2.5.2
revision=1
# make sure the sbcl option in maxima is enabled for the same archs
archs="i686 x86_64* armv7l aarch64 ppc64le*"
create_wrksrc="required"
build_wrksrc=sbcl
hostmakedepends="iana-etc texinfo"
makedepends="libzstd-devel zlib-devel"
checkdepends="procps-ng strace which"
conf_files="/etc/sbclrc"
short_desc="Steel Bank Common Lisp"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="custom:BSD+public_domain"
homepage="http://www.sbcl.org/"
changelog="http://www.sbcl.org/news.html"
distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}-source.tar.bz2"
checksum=5dc27eba7dda433df53fd7441de8b11474a82cdac1689c1f6ce55fa065d65fac
nocross=yes
nopie=yes

_bootstrap_lisp="bash ../sbcl-*-linux/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger"
case "$XBPS_TARGET_MACHINE" in
x86_64)
	distfiles+=" ${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}-x86-64-linux-binary.tar.bz2"
	checksum+=" 6330ebcd7ecaa4e5df8dfa145520473f090a449299e6675ad12eb48f2d4f5df1"
	;;
arm*)
	distfiles+=" ${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-1.2.14-armhf-linux-binary.tar.bz2"
	checksum+=" a5fbf1d596a909a7719bc4a958f00e8537bf399fa051f83736baee950b21e56a"
	;;
aarch64)
	distfiles+=" ${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-1.3.9-arm64-linux-binary.tar.bz2"
	checksum+=" 14c8fc0f3a03416b5d23763156e2bb28b690fb665af1e6f6112201fd0ddcd512"
	;;
i686*|ppc*|*-musl)
	# ecl bootstrap is broken since 2.2.0:
	# https://build.voidlinux.org/builders/x86_64-musl_builder/builds/39694/steps/shell_3/logs/stdio
	makedepends+=" clisp"
	_bootstrap_lisp="clisp"
	;;
esac

post_extract() {
	mv sbcl-${version} sbcl
}

do_build() {
	printf '"%s.void.%s"\n' "$version" "$revision" >version.lisp-expr
	export CFLAGS+=" -D_GNU_SOURCE -fno-omit-frame-pointer -DSBCL_HOME=/usr/lib/sbcl"
	export LINKFLAGS="$LDFLAGS"
	bash make.sh \
		"$_bootstrap_lisp" \
		--without-sb-test --with-sb-core-compression --prefix=/usr
	make -C ./doc/manual info
}

do_check() {
	(
		cd ./tests
		LINKFLAGS="-fno-pie -no-pie" sh run-tests.sh
	)
}

do_install() {
	SBCL_HOME="" INSTALL_ROOT="$DESTDIR/usr" sh install.sh
	vlicense COPYING LICENSE
	vconf ${FILESDIR}/sbclrc
}

sbcl-source_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" -- source files"
	pkg_install() {
		./clean.sh
		vmkdir usr/lib/sbcl
		vcopy src usr/lib/sbcl
	}
}
