comparison third_party/luajit/src/msvcbuild.bat @ 186:8cf4ec5e2191 hg-web

Fixed merge conflict.
author MrJuneJune <me@mrjunejune.com>
date Fri, 23 Jan 2026 22:38:59 -0800
parents 94705b5986b3
children
comparison
equal deleted inserted replaced
176:fed99fc04e12 186:8cf4ec5e2191
1 @rem Script to build LuaJIT with MSVC.
2 @rem Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h
3 @rem
4 @rem Open a "Visual Studio Command Prompt" (either x86 or x64).
5 @rem Then cd to this directory and run this script. Use the following
6 @rem options (in order), if needed. The default is a dynamic release build.
7 @rem
8 @rem nogc64 disable LJ_GC64 mode for x64
9 @rem debug emit debug symbols
10 @rem amalg amalgamated build
11 @rem static static linkage
12
13 @if not defined INCLUDE goto :FAIL
14
15 @setlocal
16 @rem Add more debug flags here, e.g. DEBUGCFLAGS=/DLUA_USE_APICHECK
17 @set DEBUGCFLAGS=
18 @set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline
19 @set LJLINK=link /nologo
20 @set LJMT=mt /nologo
21 @set LJLIB=lib /nologo /nodefaultlib
22 @set DASMDIR=..\dynasm
23 @set DASM=%DASMDIR%\dynasm.lua
24 @set DASC=vm_x64.dasc
25 @set LJDLLNAME=lua51.dll
26 @set LJLIBNAME=lua51.lib
27 @set BUILDTYPE=release
28 @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
29
30 %LJCOMPILE% host\minilua.c
31 @if errorlevel 1 goto :BAD
32 %LJLINK% /out:minilua.exe minilua.obj
33 @if errorlevel 1 goto :BAD
34 if exist minilua.exe.manifest^
35 %LJMT% -manifest minilua.exe.manifest -outputresource:minilua.exe
36
37 @set DASMFLAGS=-D WIN -D JIT -D FFI -D P64
38 @set LJARCH=x64
39 @minilua
40 @if errorlevel 8 goto :X64
41 @set DASC=vm_x86.dasc
42 @set DASMFLAGS=-D WIN -D JIT -D FFI
43 @set LJARCH=x86
44 @set LJCOMPILE=%LJCOMPILE% /arch:SSE2
45 :X64
46 @if "%1" neq "nogc64" goto :GC64
47 @shift
48 @set DASC=vm_x86.dasc
49 @set LJCOMPILE=%LJCOMPILE% /DLUAJIT_DISABLE_GC64
50 :GC64
51 minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%
52 @if errorlevel 1 goto :BAD
53
54 %LJCOMPILE% /I "." /I %DASMDIR% host\buildvm*.c
55 @if errorlevel 1 goto :BAD
56 %LJLINK% /out:buildvm.exe buildvm*.obj
57 @if errorlevel 1 goto :BAD
58 if exist buildvm.exe.manifest^
59 %LJMT% -manifest buildvm.exe.manifest -outputresource:buildvm.exe
60
61 buildvm -m peobj -o lj_vm.obj
62 @if errorlevel 1 goto :BAD
63 buildvm -m bcdef -o lj_bcdef.h %ALL_LIB%
64 @if errorlevel 1 goto :BAD
65 buildvm -m ffdef -o lj_ffdef.h %ALL_LIB%
66 @if errorlevel 1 goto :BAD
67 buildvm -m libdef -o lj_libdef.h %ALL_LIB%
68 @if errorlevel 1 goto :BAD
69 buildvm -m recdef -o lj_recdef.h %ALL_LIB%
70 @if errorlevel 1 goto :BAD
71 buildvm -m vmdef -o jit\vmdef.lua %ALL_LIB%
72 @if errorlevel 1 goto :BAD
73 buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
74 @if errorlevel 1 goto :BAD
75
76 @if "%1" neq "debug" goto :NODEBUG
77 @shift
78 @set BUILDTYPE=debug
79 @set LJCOMPILE=%LJCOMPILE% /Zi %DEBUGCFLAGS%
80 @set LJLINK=%LJLINK% /opt:ref /opt:icf /incremental:no
81 :NODEBUG
82 @set LJLINK=%LJLINK% /%BUILDTYPE%
83 @if "%1"=="amalg" goto :AMALGDLL
84 @if "%1"=="static" goto :STATIC
85 %LJCOMPILE% /MD /DLUA_BUILD_AS_DLL lj_*.c lib_*.c
86 @if errorlevel 1 goto :BAD
87 %LJLINK% /DLL /out:%LJDLLNAME% lj_*.obj lib_*.obj
88 @if errorlevel 1 goto :BAD
89 @goto :MTDLL
90 :STATIC
91 %LJCOMPILE% lj_*.c lib_*.c
92 @if errorlevel 1 goto :BAD
93 %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj
94 @if errorlevel 1 goto :BAD
95 @goto :MTDLL
96 :AMALGDLL
97 %LJCOMPILE% /MD /DLUA_BUILD_AS_DLL ljamalg.c
98 @if errorlevel 1 goto :BAD
99 %LJLINK% /DLL /out:%LJDLLNAME% ljamalg.obj lj_vm.obj
100 @if errorlevel 1 goto :BAD
101 :MTDLL
102 if exist %LJDLLNAME%.manifest^
103 %LJMT% -manifest %LJDLLNAME%.manifest -outputresource:%LJDLLNAME%;2
104
105 %LJCOMPILE% luajit.c
106 @if errorlevel 1 goto :BAD
107 %LJLINK% /out:luajit.exe luajit.obj %LJLIBNAME%
108 @if errorlevel 1 goto :BAD
109 if exist luajit.exe.manifest^
110 %LJMT% -manifest luajit.exe.manifest -outputresource:luajit.exe
111
112 @del *.obj *.manifest minilua.exe buildvm.exe
113 @del host\buildvm_arch.h
114 @del lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h
115 @echo.
116 @echo === Successfully built LuaJIT for Windows/%LJARCH% ===
117
118 @goto :END
119 :BAD
120 @echo.
121 @echo *******************************************************
122 @echo *** Build FAILED -- Please check the error messages ***
123 @echo *******************************************************
124 @goto :END
125 :FAIL
126 @echo You must open a "Visual Studio Command Prompt" to run this script
127 :END