Skip to content

Commit

Permalink
Use LuaJIT build script from Megasource's 12.x branch.
Browse files Browse the repository at this point in the history
  • Loading branch information
MikuAuahDark committed Nov 25, 2023
1 parent 044d5b5 commit a3b1903
Showing 1 changed file with 46 additions and 15 deletions.
61 changes: 46 additions & 15 deletions love/src/jni/LuaJIT-2.1/build_instructions.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
rem Build instruction assume using WSL + Clang for Windows (with MSVC x86+x64 toolset for -m32 switch)
rem This assume NDK r23c or later. See https://github.com/LuaJIT/LuaJIT/issues/477 for more information.
rem Build instruction assume using WSL.

rem Make sure LuaJIT (yes, you need LuaJIT interpreter) and the NDK toolchain binaries is already in
rem your PATH environment variable. If you're confused which part of the NDK should be added your path:
rem <NDK_ROOT>\toolchains\llvm\prebuilt\windows-x86_64\bin
rem Prerequisite:
rem * Android NDK r23 or later.
rem * GCC in WSL, with multilib.
rem * NDK path appended to %PATH% in Windows. (Protip: path %PATH%;<NDK_ROOT>\toolchains\llvm\prebuilt\windows-x86_64\bin)
rem * LuaJIT interpreter, either in Windows or WSL.

mkdir android\arm64-v8a
mkdir android\armeabi-v7a
Expand All @@ -13,16 +14,32 @@ mkdir android\x86_64
rem Reset error level
type nul

rem Find LuaJIT
luajit -v
if "%ERRORLEVEL%" == "0" (
set LUAJIT_INTERPRETER=luajit.exe
goto :ljdetermined
)
wsl luajit -v
if "%ERRORLEVEL%" == "0" (
set LUAJIT_INTERPRETER=luajit
goto :ljdetermined
)
echo You need LuaJIT either in Windows or in WSL!
goto :error

:ljdetermined

rem ARMv8
call :compile arm64-v8a aarch64-linux-android 21
if "%ERRORLEVEL%" == "1" goto :error

rem ARMv7
call :compile armeabi-v7a armv7a-linux-androideabi 16 -m32
call :compile armeabi-v7a armv7a-linux-androideabi 21 -m32
if not "%ERRORLEVEL%" == "0" goto :error

rem x86
call :compile x86 i686-linux-android 16 -m32
call :compile x86 i686-linux-android 21 -m32
if not "%ERRORLEVEL%" == "0" goto :error

rem x86_64
Expand All @@ -35,24 +52,38 @@ goto :done
if exist android\%1\libluajit.a exit /b 0
wsl make clean
if not "%ERRORLEVEL%" == "0" goto :error
wsl make HOST_LUA=luajit.exe "HOST_CC=clang.exe %4" HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS CC=clang CROSS=%2- "STATIC_CC=%2%3-clang -fPIC" "DYNAMIC_CC=%2%3-clang -fPIC" "TARGET_AR=llvm-ar.exe rcus" TARGET_LD=%2%3-clang CCDEBUG=-g TARGET_LDFLAGS=-fuse-ld=lld TARGET_STRIP=llvm-strip.exe amalg -j%NUMBER_OF_PROCESSORS%
wsl make ^
HOST_LUA=%LUAJIT_INTERPRETER% ^
"HOST_CC=gcc %4" ^
HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS ^
CC=clang ^
CROSS=%2- ^
"STATIC_CC=%2%3-clang -fPIC" ^
"DYNAMIC_CC=%2%3-clang -fPIC" ^
"TARGET_AR=llvm-ar.exe rcus" ^
TARGET_SYS=Linux ^
TARGET_LD=%2%3-clang ^
TARGET_LDFLAGS=-fuse-ld=lld ^
TARGET_STRIP=llvm-strip.exe ^
TARGET_SONAME=libluajit.so ^
CCDEBUG=-g ^
"GIT_RELVER=cp ../.relver luajit_relver.txt" ^
amalg -j%NUMBER_OF_PROCESSORS%
if not "%ERRORLEVEL%" == "0" goto :error
copy src\libluajit.a android\%1\libluajit.a
if not "%ERRORLEVEL%" == "0" goto :error
copy src\libluajit.so android\%1\libluajit.so
if not "%ERRORLEVEL%" == "0" goto :error
copy src\luajit.h android\%1\luajit.h
if not "%ERRORLEVEL%" == "0" goto :error
xcopy src\jit android\%1\jit /I
if not "%ERRORLEVEL%" == "0" goto :error
del android\%1\jit\.gitignore
goto :done

:post_cleanup
del src\host\buildvm.ilk
del src\host\buildvm.pdb
exit /b 0

:error
call :post_cleanup
exit /b 1

:done
wsl make clean
call :post_cleanup
exit /b 0

0 comments on commit a3b1903

Please sign in to comment.