iOS: add MoonJIT support and update libCurl build script

This commit is contained in:
MoNTE48 2019-12-07 16:41:38 +01:00
parent 181242a944
commit 5e7a24e6af
3 changed files with 41 additions and 27 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash -e
. sdk.sh
CURL_VERSION=7.65.3
CURL_VERSION=7.67.0
if [ ! -d libcurl-src ]; then
wget https://curl.haxx.se/download/curl-$CURL_VERSION.tar.gz
@ -13,9 +13,13 @@ fi
cd libcurl-src
# build once for armv7, once for arm64
for x in arm64 armv7; do
make distclean >/dev/null || true
CC=$IOS_CC CFLAGS=${IOS_FLAGS_LUA/-arch $x/} \
for x in armv7 arm64; do
if [ $x = armv7 ]; then
CURL_CFLAGS="-arch armv7 $IOS_FLAGS_LUA"
else
CURL_CFLAGS="-arch arm64 -arch arm64e $IOS_FLAGS_LUA"
fi
CC=$IOS_CC CFLAGS=$CURL_CFLAGS \
./configure --host=arm-apple-darwin --prefix=/ --disable-shared --enable-static \
--disable-debug --disable-verbose --disable-versioned-symbols \
--enable-hidden-symbols --disable-dependency-tracking \
@ -23,15 +27,19 @@ for x in arm64 armv7; do
--disable-proxy --disable-unix-sockets --without-libidn --without-librtmp \
--without-ssl --disable-ftp --disable-ldap --disable-ldaps --disable-rtsp \
--disable-dict --disable-telnet --disable-tftp --disable-pop3 \
--disable-imap --disable-smtp --disable-gopher --disable-sspi
make -j$(sysctl -n hw.ncpu)
--disable-imap --disable-smtp --disable-gopher --disable-sspi \
--disable-libcurl-option
make -j
cp -f lib/.libs/libcurl.a templib_$x.a
make clean >/dev/null || true
done
mkdir -p ../libcurl
make DESTDIR=$PWD/../libcurl install
cp -rf include ../libcurl/include
# merge libraries
rm ../libcurl/lib/libcurl.a
lipo templib_*.a -create -output ../libcurl/lib/libcurl.a
mkdir -p ../libcurl/lib
lipo -create templib_*.a -output ../libcurl/lib/libcurl.a
rm templib_*.a
echo "libcurl build successful"

View File

@ -1,34 +1,40 @@
#!/bin/bash -e
. sdk.sh
LUAJIT_VERSION=2.1
# MoonJIT
LUAJIT_VERSION=2.1.2
if [ ! -d luajit-src ]; then
wget https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.zip
unzip v$LUAJIT_VERSION.zip
mv LuaJIT-$LUAJIT_VERSION luajit-src
rm v$LUAJIT_VERSION.zip
if [ ! -d moonjit-src ]; then
wget https://github.com/moonjit/moonjit/archive/$LUAJIT_VERSION.zip
unzip $LUAJIT_VERSION.zip
mv moonjit-$LUAJIT_VERSION moonjit-src
rm $LUAJIT_VERSION.zip
fi
cd luajit-src
cd moonjit-src
# 32-bit
make -j$(sysctl -n hw.ncpu) \
make amalg -j \
DEFAULT_CC=clang HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $IOS_CC)/" \
TARGET_FLAGS="${IOS_FLAGS_LUA/-arch arm64/}" TARGET_SYS=iOS \
-j$(sysctl -n hw.ncpu)
mv src/libluajit.a tmp32.a
TARGET_FLAGS="-DLUAJIT_DISABLE_FFI -arch armv7 ${IOS_FLAGS_LUA}" TARGET_SYS=iOS
mv src/libluajit.a templib_32.a
make clean
# 64-bit
make -j$(sysctl -n hw.ncpu) \
make amalg -j \
DEFAULT_CC=clang HOST_CC=clang CROSS="$(dirname $IOS_CC)/" \
TARGET_FLAGS="${IOS_FLAGS_LUA/-arch armv7/}" TARGET_SYS=iOS \
-j$(sysctl -n hw.ncpu)
mv src/libluajit.a tmp64.a
TARGET_FLAGS="-DLUAJIT_DISABLE_FFI -arch arm64 ${IOS_FLAGS_LUA}" TARGET_SYS=iOS
mv src/libluajit.a templib_64.a
make clean
# 64-bit [arm64e]
make amalg -j \
DEFAULT_CC=clang HOST_CC=clang CROSS="$(dirname $IOS_CC)/" \
TARGET_FLAGS="-DLUAJIT_DISABLE_FFI -arch arm64e ${IOS_FLAGS_LUA}" TARGET_SYS=iOS
mv src/libluajit.a templib_64e.a
make clean
# repack into one .a
lipo tmp32.a tmp64.a -create -output libluajit.a
rm tmp32.a tmp64.a
lipo -create templib_*.a -output libluajit.a
rm templib_*.a
mkdir -p ../luajit/{lib,include}
cp -v src/*.h ../luajit/include

View File

@ -8,4 +8,4 @@ export IOS_COMPILER=$(xcrun --sdk $sdk --find clang)
export IOS_CC=$IOS_COMPILER
export IOS_CXX=$IOS_COMPILER
export IOS_FLAGS="-isysroot $(xcrun --sdk $sdk --show-sdk-path) -arch armv7 -arch armv7s -arch arm64 -arch arm64e -miphoneos-version-min=$osver -fvisibility=hidden -fdata-sections -ffunction-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -Ofast"
export IOS_FLAGS_LUA="-isysroot $(xcrun --sdk $sdk --show-sdk-path) -arch armv7 -arch arm64 -miphoneos-version-min=$osver -fvisibility=hidden -fdata-sections -ffunction-sections -Ofast"
export IOS_FLAGS_LUA="-isysroot $(xcrun --sdk $sdk --show-sdk-path) -miphoneos-version-min=$osver -fvisibility=hidden -fdata-sections -ffunction-sections -Ofast"