-
Hello gudzpoz, long time no see. So these days I did some research on it:
Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
The following is the full modified script: #!/usr/bin/env sh
# From https://github.com/mjansson/lua_lib/blob/master/lua/luajit/build-android.sh
# Fixed https://github.com/LuaJIT/LuaJIT/issues/440#issuecomment-438809840
# From https://github.com/gudzpoz/luajava/blob/main/luajit/jni/scripts/build-android.sh
# Add sopport to Windows
# /cygdrive/c/Users/29169/Documents/AndroidProjects/Zuie/app/src/main/jni/luajit
LUAJIT=.
BUILD_DIR=$LUAJIT/lib
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
rm *.a 1>/dev/null 2>/dev/null
HOST_OS=windows
TARGET_SYS=Linux
NDK=/cygdrive/c/Users/29169/AppData/Local/Android/Sdk/ndk/25.2.9519653
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_OS-x86_64
NDKB=$TOOLCHAIN/bin
NDKAPI=19
echo "########## Building armv7-a ##########"
TARGET=armv7a-linux-androideabi
NDKP=$NDKB/${TARGET}-
NDKCC=$NDKB/${TARGET}${NDKAPI}-clang
NDKARCH="-march=armv7-a -mhard-float -mfpu=vfpv3-d16 -mfloat-abi=softfp -D_NDK_MATH_NO_SOFTFP=1 -marm -DNO_RTLD_DEFAULT=1"
make HOST_CC="gcc -m32 -I/usr/i686-linux-gnu/include" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
clean
make HOST_CC="gcc -m32 -I/usr/i686-linux-gnu/include" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
amalg
mkdir -p $BUILD_DIR/armeabi-v7a
mv $LUAJIT/src/libluajit.a $BUILD_DIR/armeabi-v7a/libluajit.a
echo "########## Building i686 ##########"
TARGET=i686-linux-android
NDKP=$NDKB/${TARGET}-
NDKCC=$NDKB/${TARGET}${NDKAPI}-clang
NDKARCH="-DNO_RTLD_DEFAULT=1"
make HOST_CC="gcc -m32 -I/usr/i686-linux-gnu/include" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
clean
make HOST_CC="gcc -m32 -I/usr/i686-linux-gnu/include" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
amalg
mkdir $BUILD_DIR/x86
mv $LUAJIT/src/libluajit.a $BUILD_DIR/x86/libluajit.a
NDKAPI=21
echo "########## Building arm64-v8a ##########"
TARGET=aarch64-linux-android
NDKP=$NDKB/${TARGET}-
NDKCC=$NDKB/${TARGET}${NDKAPI}-clang
NDKARCH="-DLJ_ABI_SOFTFP=0 -DLJ_ARCH_HASFPU=1 -DLUAJIT_ENABLE_GC64=1 -DNO_RTLD_DEFAULT=1"
make HOST_CC="gcc -m64" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
clean
make HOST_CC="gcc -m64" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
amalg
mkdir -p $BUILD_DIR/arm64-v8a
mv $LUAJIT/src/libluajit.a $BUILD_DIR/arm64-v8a/libluajit.a
echo "########## Building x86_64 ##########"
TARGET=x86_64-linux-android
NDKP=$NDKB/${TARGET}-
NDKCC=$NDKB/${TARGET}${NDKAPI}-clang
NDKARCH="-DLUAJIT_ENABLE_GC64=1 -DNO_RTLD_DEFAULT=1"
make HOST_CC="gcc -m64" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
clean
make HOST_CC="gcc -m64" CROSS=$NDKP \
STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
TARGET_LD=$NDKCC TARGET_AR="$NDKB/llvm-ar rcus" TARGET_STRIP=$NDKB/llvm-strip \
CFLAGS=-fPIC TARGET_FLAGS="$NDKARCH" TARGET_SYS="$TARGET_SYS" \
amalg
mkdir -p $BUILD_DIR/x86_64
mv $LUAJIT/src/libluajit.a $BUILD_DIR/x86_64/libluajit.a The following is the full log:
|
Beta Was this translation helpful? Give feedback.
-
Quoting Mike Pall: LuaJIT/LuaJIT#934 (comment)
And judging from the official documentation:
You will need to figure out things yourself if you plan to continue using Cygwin. If you are having problems installing Linux, I would recommend install it on a virtual machine instead (with, for example, VirtualBox). For build dependencies, you may follow the GitHub workflow: luajava/.github/workflows/build-natives.yml Lines 79 to 88 in 15cf1b4 |
Beta Was this translation helpful? Give feedback.
-
Thanks for replying! Sadly, my computer is too low-end to support Hype-V feature so I cannot install a virtual system. |
Beta Was this translation helpful? Give feedback.
Quoting Mike Pall: LuaJIT/LuaJIT#934 (comment)
And judging from the official documentation:
You will need to figure out things yourself if you plan to continue using Cygwin.
If you are having problems installing Linux, I would recommend install it on a virtual machine instead (with, for example, Virtual…