# Contributor: rubicon <rubicon@mailo.com>
# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgname=picolisp
pkgver=25.3
pkgrel=0
pkgdesc="Fast, lightweight Lisp interpreter and application server framework"
url="https://picolisp.com/"
# x86, armv7, armhf: 64-bits only
# riscv64: 6 bytes required for alignment to 8-byte boundary, but only 4 present
# s390x: check fails with "ht:Pack -- Undefined"
# ppc64le: testsuite segfaults
arch="all !x86 !armv7 !armhf !riscv64 !s390x !ppc64le"
license="MIT"
depends_doc="w3m"
_llvmver=19
makedepends="
	clang$_llvmver
	libffi-dev
	llvm$_llvmver-dev
	openssl-dev
	readline-dev
	"
subpackages="$pkgname-doc $pkgname-bash-completion"
source="$pkgname-$pkgver.tar.gz::https://software-lab.de/picoLisp-$pkgver.tgz
	fix-shebang-lines.patch
	"
builddir="$srcdir/pil21"

build() {
	PATH="/usr/lib/llvm$_llvmver/bin:$PATH" \
		make -C src
}

check() {
	./pil @lib/test.l -bye +
}

package() {
	mkdir -vp "$pkgdir"/usr/bin "$pkgdir"/usr/share
	ln -sv	../lib/$pkgname/bin/picolisp \
		../lib/$pkgname/bin/pil \
		"$pkgdir"/usr/bin/
	ln -sv	../lib/$pkgname \
		"$pkgdir"/usr/share/$pkgname

	# add bash completion
	mkdir -vp "$pkgdir"/usr/share/bash-completion/completions
	mv -v	lib/bash_completion \
		"$pkgdir"/usr/share/bash-completion/completions/pil

	# move documentation
	mkdir -vp "$pkgdir"/usr/share/doc
	chmod -f 644 doc/*.html loc/*
	mv -v doc "$pkgdir"/usr/share/doc/$pkgname
	mv -v COPYING INSTALL README "$pkgdir"/usr/share/doc/$pkgname/
	rm -vf man/man1/pil.1
	ln -sv picolisp.1 man/man1/pil.1
	mv -v man "$pkgdir"/usr/share/

	mkdir -vp "$pkgdir"/usr/lib
	rm -vf pil vip
	mv -v "$builddir" "$pkgdir"/usr/lib/$pkgname
}

doc() {
	default_doc

	mkdir -vp "$subpkgdir"/usr/lib/$pkgname
	ln -sv ../../share/doc/$pkgname "$subpkgdir"/usr/lib/$pkgname/doc
}

sha512sums="
d54b7f1aaddbb8340c0e15dbe52a1b8c3b53bd15f9844303a4e06543ce4a05366d84b5ed85d11ffa549155e34a3474cdacf0fbc6526f2420d8e402fe57930d3d  picolisp-25.3.tar.gz
dd05ba8b0a6bb6dd5d2a0c676240e01a37adfb1413520b934cf6adc50eccbeff01189dc50514d46802385b8c2842afd61b8364947e71d15bfc4f7f030cfb448e  fix-shebang-lines.patch
"
