diff options
Diffstat (limited to 'community/fennel/APKBUILD')
-rw-r--r--[-rwxr-xr-x] | community/fennel/APKBUILD | 108 |
1 files changed, 87 insertions, 21 deletions
diff --git a/community/fennel/APKBUILD b/community/fennel/APKBUILD index 928ddf94831..4cb45e86d6a 100755..100644 --- a/community/fennel/APKBUILD +++ b/community/fennel/APKBUILD @@ -1,44 +1,110 @@ # Contributor: Will Sinatra <wpsinatra@gmail.com> # Maintainer: Will Sinatra <wpsinatra@gmail.com> pkgname=fennel -pkgver=0.9.2 +pkgver=1.4.2 pkgrel=0 pkgdesc="A Lua Lisp Language" url="https://fennel-lang.org" -# riscv64 blocked by lua -arch="all !riscv64" +arch="all" #detects noarch, but contains compiled binaries license="MIT" -source="fennel-$pkgver.tar.gz::https://git.sr.ht/~technomancy/fennel/archive/$pkgver.tar.gz" -_lua_version=5.3 #Upstream suggests building against 5.3 until 5.4 has better library support -makedepends="lua5.3 lua5.3-dev lua5.3-libs" subpackages="$pkgname-doc" +source="fennel-$pkgver.tar.gz::https://git.sr.ht/~technomancy/fennel/archive/$pkgver.tar.gz" +replaces="fennel" +options="net" -check() { - make test LUA=lua$_lua_version +case "$CARCH" in +ppc64le|s390x|riscv64) _lua_versions="5.1 5.2 5.3 5.4" ;; +*) _lua_versions="5.1 5.2 5.3 5.4 jit" ;; +esac + +for _v in $_lua_versions; do + makedepends="$makedepends lua$_v-dev" + + subpackages="$subpackages $pkgname$_v:_subpackage" +done + +prepare() { + default_prepare + + for _v in $_lua_versions; do + cp -r "$builddir" "$builddir-$_v" + done } build() { - make fennel-bin LUA=lua$_lua_version STATIC_LUA_LIB=/usr/lib/liblua-$_lua_version.so.0.0.0 - ./fennel-bin --compile src/fennel/binary.fnl > binary.lua + for _v in $_lua_versions; do + msg "Building for lua$_v..." + cd "$builddir-$_v" + + if [ $_v = "5.1" ]; then + libdir=/usr/lib/liblua.so + includedir=/usr/include + elif [ $_v = "jit" ]; then + libdir=/usr/lib/libluajit-5.1.so + includedir=/usr/include/luajit-2.1 + else + libdir=/usr/lib/lua$_v/liblua.so + includedir=/usr/include/lua$_v + fi + + make fennel.lua \ + COMPILE_ARGS="FENNEL_PATH=src/?.fnl FENNEL_MACRO_PATH=src/?.fnl CC_OPTS=" \ + fennel-bin \ + LUA=lua$_v \ + NATIVE_LUA_LIB=$libdir \ + BIN_LUA_VERSION=$_v \ + LUA_INCLUDE_DIR=$includedir \ + BIN_LUA_DIR=/usr/bin/lua$_v + + ./fennel-bin --compile src/fennel/binary.fnl > binary.lua + done +} + +check() { + for _v in $_lua_versions; do + msg "Testing for lua$_v..." + cd "$builddir-$_v" + + make test LUA=lua$_v + done } package() { - install -Dm644 "fennelview.lua" \ - -t "$pkgdir/usr/share/lua/$_lua_version/" + cd "$builddir-5.4" + gzip -9n man/man1/fennel.1 + gzip -9n man/man3/fennel-api.3 + gzip -9n man/man5/fennel-reference.5 + gzip -9n man/man7/fennel-tutorial.7 + + install -Dm644 man/man1/fennel.1.gz \ + -t "$pkgdir"/usr/share/man/man1/ + install -Dm644 man/man3/fennel-api.3.gz \ + -t "$pkgdir"/usr/share/man/man3/ + install -Dm644 man/man5/fennel-reference.5.gz \ + -t "$pkgdir"/usr/share/man/man5/ + install -Dm644 man/man7/fennel-tutorial.7.gz \ + -t "$pkgdir"/usr/share/man/man7/ + +} + +_subpackage() { + local _v="${subpkgname#"$pkgname"}" + pkgdesc="A Lua Lisp Language for Lua $_v" + install_if="lua$_v $pkgname=$pkgver-r$pkgrel" + depends="$depends lua$_v" - install -Dm644 "fennel.lua" \ - -t "$pkgdir/usr/share/lua/$_lua_version/" + cd "$builddir-$_v" - install -Dm644 "binary.lua" \ - -t "$pkgdir/usr/share/lua/$_lua_version/fennel/" + install -Dm0644 "fennel.lua" \ + -t "$subpkgdir/usr/share/lua/$_v/" - install -Dm644 "fennel.1" \ - -t "$pkgdir/usr/share/man/man1/fennel.1" + install -Dm0644 "binary.lua" \ + -t "$subpkgdir/usr/share/lua/$_v/fennel/" - install -Dm755 "fennel-bin" \ - "$pkgdir/usr/bin/fennel" + install -Dm0755 "fennel-bin" \ + "$subpkgdir/usr/bin/fennel$_v" } sha512sums=" -2bf92865a4d79329b6c511c6871158a86347f98569a594358f9a3a8d2ac8013c35d00741ae68da50c5042df2b061e2eba4e61aa98877f94415f334f9994ad4e0 fennel-0.9.2.tar.gz +13b6020314d010566c7521b85065a446e09f8a0cfec9b9cb4bc2e23fe59369d105538bcb8a3a7cd865c399742d98a1742da932f8bde993c1136422f803069071 fennel-1.4.2.tar.gz " |