1
1
@ rem Script to build LuaJIT with MSVC.
2
- @ rem Copyright (C) 2005-2022 Mike Pall. See Copyright Notice in luajit.h
2
+ @ rem Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h
3
3
@ rem
4
4
@ rem Open a "Visual Studio Command Prompt" (either x86 or x64).
5
5
@ rem Then cd to this directory and run this script. Use the following
28
28
@ set BUILDTYPE = release
29
29
@ set ALL_LIB = lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c lib_buffer.c
30
30
31
+ @ setlocal
32
+ @ call :SETHOSTVARS
31
33
%LJCOMPILE% host\minilua.c
32
34
@ if errorlevel 1 goto :BAD
33
35
%LJLINK% /out:minilua.exe minilua.obj
34
36
@ if errorlevel 1 goto :BAD
35
37
if exist minilua.exe.manifest^
36
38
%LJMT% -manifest minilua.exe.manifest -outputresource:minilua.exe
39
+ @ endlocal
37
40
38
- @ set DASMFLAGS = -D WIN -D JIT -D FFI -D P64
41
+ @ set DASMFLAGS = -D WIN -D JIT -D FFI -D ENDIAN_LE -D FPU -D P64
39
42
@ set LJARCH = x64
40
43
@ minilua
41
- @ if errorlevel 8 goto :X64
44
+ @ if errorlevel 8 goto :NO32
42
45
@ set DASC = vm_x86.dasc
43
- @ set DASMFLAGS = -D WIN -D JIT -D FFI
46
+ @ set DASMFLAGS = -D WIN -D JIT -D FFI -D ENDIAN_LE -D FPU
44
47
@ set LJARCH = x86
45
48
@ set LJCOMPILE = %LJCOMPILE% /arch:SSE2
49
+ @ goto :DA
50
+ :NO32
51
+ @ if " %VSCMD_ARG_TGT_ARCH% " neq " arm64" goto :X64
52
+ @ set DASC = vm_arm64.dasc
53
+ @ set DASMTARGET = -D LUAJIT_TARGET=LUAJIT_ARCH_ARM64
54
+ @ set LJARCH = arm64
55
+ @ goto :DA
46
56
:X64
47
- @ if " %1 " neq " nogc64" goto :GC64
57
+ @ if " %1 " neq " nogc64" goto :DA
48
58
@ shift
49
59
@ set DASC = vm_x86.dasc
50
60
@ set LJCOMPILE = %LJCOMPILE% /DLUAJIT_DISABLE_GC64
51
- :GC64
61
+ :DA
52
62
minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%
53
63
@ if errorlevel 1 goto :BAD
54
64
@@ -57,12 +67,18 @@ minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%
57
67
@ set LJCOMPILE = %LJCOMPILE% /DLUAJIT_ENABLE_LUA52COMPAT
58
68
:NOLUA52C
59
69
60
- %LJCOMPILE% /I " ." /I %DASMDIR% host\buildvm*.c
70
+ if exist ..\.git ( git show -s --format=%% ct > luajit_relver.txt ) else ( type ..\.relver > luajit_relver.txt )
71
+ minilua host\genversion.lua
72
+
73
+ @ setlocal
74
+ @ call :SETHOSTVARS
75
+ %LJCOMPILE% /I " ." /I %DASMDIR% %DASMTARGET% host\buildvm*.c
61
76
@ if errorlevel 1 goto :BAD
62
77
%LJLINK% /out:buildvm.exe buildvm*.obj
63
78
@ if errorlevel 1 goto :BAD
64
79
if exist buildvm.exe.manifest^
65
80
%LJMT% -manifest buildvm.exe.manifest -outputresource:buildvm.exe
81
+ @ endlocal
66
82
67
83
buildvm -m peobj -o lj_vm.obj
68
84
@ if errorlevel 1 goto :BAD
@@ -121,6 +137,12 @@ if exist luajit.exe.manifest^
121
137
@ echo .
122
138
@ echo === Successfully built LuaJIT for Windows/%LJARCH% ===
123
139
140
+ @ goto :END
141
+ :SETHOSTVARS
142
+ @ if " %VSCMD_ARG_HOST_ARCH% _%VSCMD_ARG_TGT_ARCH% " equ " x64_arm64" (
143
+ call " %VSINSTALLDIR% Common7\Tools\VsDevCmd.bat" -arch=%VSCMD_ARG_HOST_ARCH% -no_logo
144
+ echo on
145
+ )
124
146
@ goto :END
125
147
:BAD
126
148
@ echo .
0 commit comments