Last active
February 1, 2019 03:44
-
-
Save ifshuaishuai/af9e3860801ce30065bbce205517a80e to your computer and use it in GitHub Desktop.
xLua luajit compile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# LuaJIT 的源码路径 | |
LUAJIT=./LuaJIT-2.1.0-beta3 | |
XCODEPATH=`xcode-select -print-path` | |
DEVDIR=$XCODEPATH/Platforms | |
IOSVER=iPhoneOS.sdk | |
SIMVER=iPhoneSimulator.sdk | |
# 库的最总名称 | |
LIBNAME=libluajit2.1.0-beta.3.a | |
# iOS 最低兼容版本,最好与需要嵌入 LuaJIT 的 App 的最低兼容设置保持一致. | |
MINVERSION=9.0 | |
IOSDIR=$DEVDIR/iPhoneOS.platform/Developer | |
SIMDIR=$DEVDIR/iPhoneSimulator.platform/Developer | |
# xctoolchain 可以使用 xcode-select --install 命令安装. | |
# xctoolchain 和模拟器中, 目前已不包含 gcc 等命令,可以从系统其它位置复制到 $IOSBIN 目录. | |
# 命令的具体路径,可以执行 xcodebuild -find gcc 获得. | |
IOSBIN=$XCODEPATH/Toolchains/XcodeDefault.xctoolchain/usr/bin/ | |
SIMBIN=$SIMDIR/usr/bin/ | |
BUILD_DIR=$LUAJIT/build | |
rm -rf $BUILD_DIR | |
mkdir -p $BUILD_DIR | |
#echo ================================================= | |
#echo ARMV7 Architecture | |
#ISDKF="-arch armv7 -isysroot $IOSDIR/SDKs/$IOSVER -miphoneos-version-min=$MINVERSION" | |
#make -j -C $LUAJIT HOST_CC="gcc -m32 " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=armv7 TARGET_SYS=iOS clean | |
#make -j -C $LUAJIT HOST_CC="gcc -m32 " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=armv7 TARGET_SYS=iOS | |
#mv $LUAJIT/src/libluajit.a $BUILD_DIR/libluajitA7.a | |
#echo ================================================= | |
#echo ARM64 Architecture | |
#ISDKF="-arch arm64 -isysroot $IOSDIR/SDKs/$IOSVER -miphoneos-version-min=$MINVERSION" | |
#make -j -C $LUAJIT HOST_CC="gcc " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=arm64 TARGET_SYS=iOS clean | |
#make -j -C $LUAJIT HOST_CC="gcc " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=arm64 TARGET_SYS=iOS | |
#mv $LUAJIT/src/libluajit.a $BUILD_DIR/libluajit64bit.a | |
echo ================================================= | |
echo IOS Simulator Architecture | |
ISDKF="-arch x86_64 -isysroot $SIMDIR/SDKs/$SIMVER -miphoneos-version-min=$MINVERSION" | |
make -j -C $LUAJIT HOST_CFLAGS="-arch x86_64" HOST_LDFLAGS="-arch x86_64" TARGET_SYS=iOS TARGET=x86_64 clean | |
make -j -C $LUAJIT HOST_CFLAGS="-arch x86_64" HOST_LDFLAGS="-arch x86_64" TARGET_SYS=iOS TARGET=x86_64 amalg CROSS=$SIMBIN TARGET_FLAGS="$ISDKF" | |
mv $LUAJIT/src/libluajit.a $BUILD_DIR/libluajitx86_64.a | |
libtool -o $BUILD_DIR/$LIBNAME $BUILD_DIR/*.a | |
# build xLua | |
mkdir -p build_lj_ios_simulator && cd build_lj_ios_simulator | |
cmake -DUSING_LUAJIT=ON -DIOS_PLATFORM=SIMULATOR -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -GXcode ../ | |
cd .. | |
cmake --build build_lj_ios_simulator --config Release | |
# assemble all | |
mkdir -p plugin_luajit_simulator/Plugins/iOS/ | |
libtool -static -o plugin_luajit_simulator/Plugins/iOS/libxlua.a build_lj_ios_simulator/Release-iphonesimulator/libxlua.a $BUILD_DIR/$LIBNAME | |
# last add to link | |
# -pagezero_size 10000 -image_base 100000000 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment