# Contributor: John Proctor <jproctor@prium.net> # Contributor: Daniel White <daniel@whitehouse.id.au> # Maintainer: Juergen Hoetzel <juergen@archlinux.org> # Contributor: Leslie Polzer (skypher) # ALARM: Kevin Mihelich <kevin@archlinuxarm.org> # - disable sb-thread on 32-bit ARM: not supported # - enable sb-thread and largefile on AArch64 buildarch=12 highmem=1 pkgname=sbcl pkgver=1.5.5 pkgrel=1 pkgdesc="Steel Bank Common Lisp" url="http://www.sbcl.org/" arch=('x86_64') license=('custom') depends=('zlib') provides=('common-lisp' 'cl-asdf') makedepends=('sbcl') source=("https://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" "arch-fixes.lisp") sha256sums=('cb47fae6a86f0c5c57431604fb4e5f11c8a823f94ce128d568b8770fc5bcaae2' 'b5a6468dcbc1012cae2c3cda155762a37b6d96ef89bba4f723315063b0b5e7ce') build() { cd "$srcdir/$pkgname-$pkgver" export CFLAGS+=" -D_GNU_SOURCE -fno-omit-frame-pointer -DSBCL_HOME=/usr/lib/sbcl" export GNUMAKE="make" # build system uses LINKFLAGS and OS_LIBS to build LDFLAGS export LINKFLAGS="$LDFLAGS" unset LDFLAGS unset MAKEFLAGS if [[ ${CARCH} = x86_64 || ${CARCH} = aarch64 ]]; then enable_disable_largefile=enable else enable_disable_largefile=disable fi if [[ ${CARCH} = aarch64 ]]; then enable_disable_thread=enable else enable_disable_thread=disable fi # Make a multi-threaded SBCL, disable LARGEFILE cat >customize-target-features.lisp <<EOF (lambda (features) (flet ((enable (x) (pushnew x features)) (disable (x) (setf features (remove x features)))) (${enable_disable_thread} :sb-thread) (enable :sb-core-compression) (${enable_disable_largefile} :largefile))) EOF sh make.sh sbcl --prefix=/usr make -C doc/manual info } package() { cd "$srcdir/$pkgname-$pkgver" # cannot have both SBCL_HOME and INSTALL_ROOT SBCL_HOME="" INSTALL_ROOT="$pkgdir/usr" sh install.sh src/runtime/sbcl --core output/sbcl.core --script "${srcdir}/arch-fixes.lisp" mv sbcl-new.core "${pkgdir}/usr/lib/sbcl/sbcl.core" # sources mkdir -p "$pkgdir/usr/share/sbcl-source" cp -R -t "$pkgdir/usr/share/sbcl-source" "$srcdir/$pkgname-$pkgver/"{src,contrib} # license install -D -m644 "$srcdir/$pkgname-$pkgver/COPYING" \ "$pkgdir/usr/share/licenses/$pkgname/license.txt" # drop unwanted files find "$pkgdir" \( -name Makefile -o -name .cvsignore \) -delete find "$pkgdir/usr/share/sbcl-source" -type f \ \( -name \*.fasl -o -name \*.o -o -name \*.log -o -name \*.so -o -name a.out \) -delete rm "$pkgdir/usr/share/sbcl-source/src/runtime/sbcl"{,.nm} }