APKBUILD examples:Lua
Module with Makefile supporting multiple Lua versions
    
pkgname=lua-foo
_rockname=${pkgname#lua-}
...
arch="all"
depends=""
makedepends=""
subpackages=""
...
_luaversions="5.1 5.2 5.3"
for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
done
build() {
	cd "$builddir"
	local lver; for lver in $_luaversions; do
		msg "Building for Lua $lver..."
		make all$lver
	done
}
package() {
	mkdir -p "$pkgdir"
}
_subpackage() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc (for Lua $lver)"
	depends="lua$lver"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-0"
	cd "$builddir"
	make PREFIX="/usr" DESTDIR="$subpkgdir" install$lver
	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
    
Module with simple Makefile
    
pkgname=lua-foo
_rockname=${pkgname#lua-}
...
arch="all"
depends=""
makedepends=""
subpackages=""
...
_luaversions="5.1 5.2 5.3"
for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
done
prepare() {
	default_prepare
	local lver; for lver in $_luaversions; do
		cp -r "$builddir" "$builddir-$lver"
	done
}
build() {
	local lver; for lver in $_luaversions; do
		msg "Building for Lua $lver..."
		make -C "$builddir-$lver"
	done
}
package() {
	mkdir -p "$pkgdir"
}
_subpackage() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc (for Lua $lver)"
	depends="lua$lver"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-0"
	cd "$builddir-$lver"
	make PREFIX="/usr" DESTDIR="$subpkgdir" install
	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
    
Module with rockspec
    
pkgname=lua-foo
_rockname=${pkgname#lua-}
...
arch="all"
depends=""
makedepends=""
subpackages=""
...
_luaversions="5.1 5.2 5.3"
for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev luarocks$_v"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
done
build() {
	cd "$builddir"
	local lver; for lver in $_luaversions; do
		msg "Building for Lua $lver..."
		luarocks-$lver \
			CC="$CC" \
			CFLAGS="$CFLAGS -fPIC" \
			LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
			LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
			make --tree=./build $_rockname-$pkgver-0.rockspec
	done
}
package() {
	mkdir -p "$pkgdir"
}
_subpackage() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc (for Lua $lver)"
	depends="lua$lver"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-0"
	local path; for path in lib/lua/$lver share/lua/$lver; do
		mkdir -p "$subpkgdir"/usr/${path%/*}
		mv "$builddir"/build/$path "$subpkgdir"/usr/$path/
	done
	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
    
    This article is issued from Alpinelinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.