Skip to content

Commit 50bf4f5

Browse files
authored
Merge pull request #81 from Wires77/luajit_2.1
2 parents 9d1a53f + d817e77 commit 50bf4f5

File tree

12 files changed

+833
-2
lines changed

12 files changed

+833
-2
lines changed

vcpkg-configuration.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
{
88
"kind": "filesystem",
99
"path": "vcpkg-ports",
10-
"baseline": "2025-01-19",
10+
"baseline": "2025-10-07",
1111
"packages": ["glfw3", "gli", "luajit"]
1212
}
1313
]
14-
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
diff --git a/src/Makefile b/src/Makefile
2+
index c4d0b14d..2c9769b9 100644
3+
--- a/src/Makefile
4+
+++ b/src/Makefile
5+
@@ -318,9 +318,6 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector
6+
TARGET_XCFLAGS+= -fno-stack-protector
7+
endif
8+
ifeq (Darwin,$(TARGET_SYS))
9+
- ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
10+
- $(error missing: export MACOSX_DEPLOYMENT_TARGET=XX.YY)
11+
- endif
12+
TARGET_STRIP+= -x
13+
TARGET_XCFLAGS+= -DLUAJIT_UNWIND_EXTERNAL
14+
TARGET_XSHLDFLAGS= -dynamiclib -undefined dynamic_lookup -fPIC
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
diff --git a/etc/luajit.pc b/etc/luajit.pc
2+
index 39e1e57..3837d3b 100644
3+
--- a/etc/luajit.pc
4+
+++ b/etc/luajit.pc
5+
@@ -21,5 +21,5 @@ URL: https://luajit.org
6+
Version: ${version}
7+
Requires:
8+
Libs: -L${libdir} -l${libname}
9+
-Libs.private: -Wl,-E -lm -ldl
10+
+Libs.private: -lm -ldl
11+
Cflags: -I${includedir}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
all:
2+
@echo _CL_ = $(_CL_)
3+
@echo _LINK_ = $(_LINK_)
4+
cd src && .\msvcbuild.bat $(MSVCBUILD_OPTIONS)
5+
6+
install: src/luajit.exe
7+
-mkdir "$(INSTALLDIR)"
8+
-mkdir "$(INSTALLDIR)\bin"
9+
copy src\luajit.exe "$(INSTALLDIR)\bin\"
10+
if exist src\lua51.dll copy src\lua51.dll "$(INSTALLDIR)\bin\"
11+
-mkdir "$(INSTALLDIR)\lib"
12+
copy src\lua51.lib "$(INSTALLDIR)\lib\"
13+
-mkdir "$(INSTALLDIR)\include"
14+
-mkdir "$(INSTALLDIR)\include\luajit"
15+
copy src/lua.h "$(INSTALLDIR)\include\luajit\"
16+
copy src/luajit.h "$(INSTALLDIR)\include\luajit\"
17+
copy src/luaconf.h "$(INSTALLDIR)\include\luajit\"
18+
copy src/lualib.h "$(INSTALLDIR)\include\luajit\"
19+
copy src/lauxlib.h "$(INSTALLDIR)\include\luajit\"
20+
copy src/lua.hpp "$(INSTALLDIR)\include\luajit\"
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
LJARCH=
6+
LUAJIT_BUILDMODE=
7+
LUAJIT_BUILDVM_X=
8+
LUAJIT_DASM_ARCHS=
9+
LUAJIT_PREFIX=
10+
for OPTION; do
11+
case "${OPTION}" in
12+
--prefix=*)
13+
LUAJIT_PREFIX="${OPTION#--prefix=}"
14+
;;
15+
BUILDMODE=*)
16+
LUAJIT_BUILDMODE="${OPTION#BUILDMODE=}"
17+
;;
18+
BUILDVM_X=*)
19+
LUAJIT_BUILDVM_X="${OPTION#BUILDVM_X=}"
20+
;;
21+
DASM_ARCHS=*)
22+
LUAJIT_DASM_ARCHS="${OPTION#DASM_ARCHS=}"
23+
;;
24+
LJARCH=*)
25+
LJARCH="${OPTION#LJARCH=}"
26+
;;
27+
esac
28+
done
29+
30+
cat > Makefile.vcpkg <<END_MAKEFILE ;
31+
32+
COMMON_OPTIONS += 'E=@:' 'Q='
33+
COMMON_OPTIONS += 'BUILDMODE=${LUAJIT_BUILDMODE}'
34+
COMMON_OPTIONS += 'PREFIX=${LUAJIT_PREFIX}'
35+
COMMON_OPTIONS += 'INSTALL_TNAME=luajit'
36+
37+
BUILD_OPTIONS += 'CC=${CC}'
38+
BUILD_OPTIONS += 'CCDEBUG='
39+
BUILD_OPTIONS += 'CFLAGS=${CPPFLAGS} ${CFLAGS}'
40+
BUILD_OPTIONS += 'LDFLAGS=${LDFLAGS}'
41+
BUILD_OPTIONS += 'LIBS=${LIBS}'
42+
43+
ifeq (${LJARCH},)
44+
# native
45+
BUILDVM_PREFIX = ${LUAJIT_PREFIX}/manual-tools/luajit
46+
DASM_ARCHS = ${LUAJIT_DASM_ARCHS}
47+
else
48+
# cross
49+
BUILD_OPTIONS += 'HOST_CC=:'
50+
BUILD_OPTIONS += 'BUILDVM_T='
51+
BUILD_OPTIONS += 'BUILDVM_X=${LUAJIT_BUILDVM_X}'
52+
endif
53+
54+
# used by src/Makefile, best effort from manual '<CC> [-m32] -E src/lj_arch.h -dM'
55+
TARGET_TESTARCH_COMMON += 'LJ_LE 1' 'LJ_HASJIT 1' 'LJ_HASFFI 1' 'LJ_ARCH_HASFPU 1' 'LJ_ABI_SOFTFP 0'
56+
TARGET_TESTARCH_COMMON_32 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 32'
57+
TARGET_TESTARCH_COMMON_64 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 64' 'LJ_TARGET_GC64 1'
58+
TARGET_TESTARCH_arm = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_ARM
59+
TARGET_TESTARCH_arm64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_ARM64 'LJ_ARCH_VERSION 80'
60+
TARGET_TESTARCH_x86 = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_X86
61+
TARGET_TESTARCH_x64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_X64 'LJ_FR2 1'
62+
63+
all:
64+
\$(MAKE) clean \$(COMMON_OPTIONS) \$(BUILD_OPTIONS)
65+
\$(MAKE) all \$(COMMON_OPTIONS) \$(BUILD_OPTIONS)
66+
for DA in \$(DASM_ARCHS); do \\
67+
rm -f src/host/buildvm_arch.h src/host/*.o; \\
68+
case "\$\$DA" in \\
69+
arm) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm)" ;; \\
70+
arm64) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm64)" ;; \\
71+
x86) TARGET_TESTARCH="\$(TARGET_TESTARCH_x86)" ;; \\
72+
x64) TARGET_TESTARCH="\$(TARGET_TESTARCH_x64)" ;; \\
73+
esac ; \\
74+
\$(MAKE) -C src host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) \\
75+
BUILDVM_T=host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) "TARGET_TESTARCH=\$\${TARGET_TESTARCH}" \\
76+
|| exit 1; \\
77+
done
78+
79+
install:
80+
\$(MAKE) install \$(COMMON_OPTIONS)
81+
for DA in \$(DASM_ARCHS); do \\
82+
mkdir -p "\$\${DESTDIR}\$(BUILDVM_PREFIX)"; \\
83+
install -m 0755 "src/host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" "\$\${DESTDIR}\$(BUILDVM_PREFIX)/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" || exit 1 ; \\
84+
done
85+
86+
END_MAKEFILE
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Package information for LuaJIT to be used by pkg-config.
2+
majver=2
3+
minver=1
4+
relver=0
5+
version=${majver}.${minver}
6+
abiver=51
7+
8+
prefix=@PREFIX@
9+
multilib=lib
10+
exec_prefix=${prefix}
11+
libdir=${exec_prefix}/${multilib}
12+
libname=lua${abiver}
13+
includedir=${prefix}/include/luajit
14+
15+
INSTALL_LMOD=${prefix}/share/lua/${abiver}
16+
INSTALL_CMOD=${prefix}/${multilib}/lua/${abiver}
17+
18+
Name: LuaJIT
19+
Description: Just-in-time compiler for Lua
20+
URL: https://luajit.org
21+
Version: ${version}
22+
Requires:
23+
Libs: -L${libdir} -l${libname}
24+
Cflags: -I${includedir} @LJIT_MSVC_PC_CFLAGS@
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat
2+
index 69c0c61a..a5bcde7b 100644
3+
--- a/src/msvcbuild.bat
4+
+++ b/src/msvcbuild.bat
5+
@@ -15,15 +15,15 @@
6+
7+
@setlocal
8+
@rem Add more debug flags here, e.g. DEBUGCFLAGS=/DLUA_USE_ASSERT
9+
-@set DEBUGCFLAGS=
10+
-@set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline
11+
+@set DEBUGCFLAGS=/Od
12+
+@set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline /Z7 /GL
13+
@set LJDYNBUILD=/DLUA_BUILD_AS_DLL /MD
14+
@set LJDYNBUILD_DEBUG=/DLUA_BUILD_AS_DLL /MDd
15+
@set LJCOMPILETARGET=/Zi
16+
@set LJLINKTYPE=/DEBUG /RELEASE
17+
@set LJLINKTYPE_DEBUG=/DEBUG
18+
@set LJLINKTARGET=/OPT:REF /OPT:ICF /INCREMENTAL:NO
19+
-@set LJLINK=link /nologo
20+
+@set LJLINK=link /nologo /LTCG
21+
@set LJMT=mt /nologo
22+
@set LJLIB=lib /nologo /nodefaultlib
23+
@set DASMDIR=..\dynasm
24+
@@ -105,10 +105,10 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
25+
@set LJLINK=%LJLINK% %LJLINKTYPE% %LJLINKTARGET%
26+
@if "%1"=="amalg" goto :AMALGDLL
27+
@if "%1"=="static" goto :STATIC
28+
-%LJCOMPILE% %LJDYNBUILD% lj_*.c lib_*.c
29+
+%LJCOMPILE% %LJDYNBUILD% lj_*.c lib_*.c /Fdlua51.pdb
30+
@if errorlevel 1 goto :BAD
31+
@if "%1"=="mixed" goto :STATICLIB
32+
-%LJLINK% /DLL /OUT:%LJDLLNAME% lj_*.obj lib_*.obj
33+
+%LJLINK% /DLL /OUT:%LJDLLNAME% lj_*.obj lib_*.obj /DEBUG /OPT:ICF /OPT:REF
34+
@if errorlevel 1 goto :BAD
35+
@goto :MTDLL
36+
:STATIC
37+
@@ -136,7 +136,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
38+
if exist %LJDLLNAME%.manifest^
39+
%LJMT% -manifest %LJDLLNAME%.manifest -outputresource:%LJDLLNAME%;2
40+
41+
-%LJCOMPILE% luajit.c
42+
+%LJCOMPILE% luajit.c /Fdluajit.pdb
43+
@if errorlevel 1 goto :BAD
44+
%LJLINK% /OUT:luajit.exe luajit.obj %LJLIBNAME%
45+
@if errorlevel 1 goto :BAD
46+
@@ -164,4 +164,5 @@ if exist luajit.exe.manifest^
47+
@goto :END
48+
:FAIL
49+
@echo You must open a "Visual Studio Command Prompt" to run this script
50+
+exit 1
51+
:END

0 commit comments

Comments
 (0)