# Template file for 'ccl'
pkgname=ccl
version=1.12
revision=1
archs="i686* x86_64*"
create_wrksrc=yes
hostmakedepends="m4"
short_desc="Clozure Common Lisp interpreter and compiler"
maintainer="rc-05 <rc23@email.it>"
license="Apache-2.0"
homepage="https://ccl.clozure.com/"
distfiles="
 https://github.com/Clozure/ccl/archive/v${version}.tar.gz
 https://github.com/Clozure/ccl/releases/download/v${version}/linuxx86.tar.gz
"
checksum="
 774a06b4fb6dc4b51dfb26da8e1cc809c605e7706c12180805d1be6f2885bd52
 7fbdb04fb1b19f0307c517aa5ee329cb4a21ecc0a43afd1b77531e4594638796
"
nopie=1
nostrip=1
disable_parallel_build=1
python_version=3

case $XBPS_MACHINE in
	x86_64*) _arch=64 ;;
	i686-musl) broken="SIGSEGV accessing context->regs: address not mapped to object" ;;
	*) _arch='' ;;
esac

post_extract() {
	mv ccl-${version}/* .
	vsed -i -e"/^COPT =/s/$/ -fcommon/" lisp-kernel/*/Makefile
}

do_build() {
	# recompile kernel, mandatory for musl
	cd "lisp-kernel/linuxx86${_arch:-32}"
	make
	cd ../..

	./lx86cl$_arch -n -Q -b -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)'
}

do_install() {
	find . -type d -name .svn -exec rm -rf '{}' +
	find . -name '*.o' -delete
	find . -name '*.*fsl' -delete

	vmkdir usr/lib/$pkgname

	vcopy lx86cl$_arch usr/lib/$pkgname
	vcopy lx86cl$_arch.image usr/lib/$pkgname

	cat > exe.sh <<EOF
#!/bin/sh
exec /usr/lib/$pkgname/"lx86cl$_arch" "\$@"
EOF
	vbin exe.sh ccl

#	vcopy compiler usr/lib/$pkgname
#	vcopy level-0 usr/lib/$pkgname
#	vcopy level-1 usr/lib/$pkgname
	vcopy lib usr/lib/$pkgname
	vcopy library usr/lib/$pkgname
	vcopy scripts usr/lib/$pkgname
	vcopy tools usr/lib/$pkgname
	vcopy xdump usr/lib/$pkgname

	vmkdir usr/share/examples/$pkgname
	vcopy "examples/*" usr/share/examples/$pkgname
}
