# Template file for 'sbcl'
pkgname=sbcl
version=2.4.3
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"
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=89c9aadf92b82ad3c74a3d4f158a038893dea0e4f394dcafc963583c30b7c3f2
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+=" 4ffbb6949108878be7a44a5e6d7a4e92b8aba581f7e39f74a3d9352a1d4f4646"
	;;
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_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
	}
}
