projects/aports·blob master · refs

113 lines · 2.9 KiB

1# Contributor: Jakub Jirutka <[email protected]>
2# Maintainer: Jakub Jirutka <[email protected]>
3_luaversions="5.1 5.2 5.3 5.4 5.5"
4pkgname=lua-compat53
5_rockname=compat53
6_pkgname=lua-compat-5.3
7pkgver=0.15.1
8pkgrel=0
9pkgdesc="Compatibility module providing Lua-5.3-style APIs for Lua"
10url="https://github.com/lunarmodules/lua-compat-5.3"
11arch="all"
12license="MIT"
13subpackages="$pkgname-dev"
14for _v in $_luaversions; do
15 makedepends="$makedepends lua$_v-dev"
16 subpackages="$subpackages lua$_v-${pkgname#lua-}:_package"
17done
18source="$pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/$_pkgname/archive/v$pkgver.tar.gz
19 test.patch
20 "
21builddir="$srcdir/$_pkgname-$pkgver"
22
23# C modules to build: source_file:output_name
24_c_modules="lutf8lib.c:utf8.so ltablib.c:table.so lstrlib.c:string.so"
25
26CC=${CC:-cc}
27
28# NOTE: We cannot build it using luarocks because of circular dependency.
29_build() {
30 local lver="$1"
31 local lua_incdir="$(pkg-config --variable=includedir lua$lver)"
32
33 msg "Building for Lua $lver..."
34
35 mkdir -p "build-$lver/compat53"
36
37 # Build C modules
38 local mod; for mod in $_c_modules; do
39 local src="${mod%:*}"
40 local soname="${mod#*:}"
41
42 msg2 "Compiling $soname"
43 $CC $CFLAGS -fno-plt -fPIC -I"$lua_incdir" -c "$src" -o "${src%.c}.o"
44 $CC $LDFLAGS -shared -o "build-$lver/compat53/$soname" "${src%.c}.o"
45 done
46
47 msg2 "Compiling testmod-${lver/./}.so"
48 $CC $CFLAGS -fPIC -shared -I"$lua_incdir" -Ic-api \
49 -o "tests/testmod-${lver/./}.so" \
50 tests/testmod.c
51}
52
53build() {
54 local lver; for lver in $_luaversions; do
55 _build "$lver"
56 done
57}
58
59check() {
60 cd tests
61
62 local lver; for lver in $_luaversions; do
63 msg "Testing Lua $lver..."
64
65 LUA_CPATH="$builddir/build-$lver/?.so;;" \
66 lua$lver test.lua
67 done
68}
69
70package() {
71 mkdir -p "$pkgdir"
72}
73
74_package() {
75 local lver="${subpkgname:3:3}"
76 pkgdesc="$pkgdesc $lver"
77 depends="lua$lver"
78 install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
79 local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-1"
80
81 cd "$builddir"
82
83 # Install C modules
84 install -D -m755 build-$lver/compat53/*.so -t "$subpkgdir"/usr/lib/lua/$lver/compat53/
85
86 # Install Lua modules
87 install -D -m644 compat53/*.lua -t "$subpkgdir"/usr/share/lua/$lver/compat53/
88
89 # Create rock manifest for luarocks compatibility
90 mkdir -p "$rockdir"
91 echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
92}
93
94dev() {
95 default_dev
96
97 local incdir51="$subpkgdir/usr/include/lua5.1"
98 local incdir52="$subpkgdir/usr/include/lua5.2"
99
100 cd "$builddir"
101
102 install -D -m644 lprefix.h -t "$incdir51"
103 install -D -m644 c-api/* -t "$incdir51"/c-api/
104
105 mkdir -p "$incdir52"/c-api
106 cp -l "$incdir51"/*.h "$incdir52"/
107 cp -l "$incdir51"/c-api/* "$incdir52"/c-api/
108}
109
110sha512sums="
1116b17213321a08268228a97180e08289b85d6554b25cac89f7b7f72e79be0169af233fade87718b4a68485e0357dcb34245e660222e5c9d06254b0f3b64ef19cd lua-compat53-0.15.1.tar.gz
112d25a565672d0e55ac1fbe80eba48368c7bffcc78e0c55ef93b231a2bff3296d70624ecceab81e0271da2a10a88bebd7b03072abb3a99e6b4fbe82fae73eabe32 test.patch
113"