diff options
Diffstat (limited to 'src/xb1build.bat')
-rw-r--r-- | src/xb1build.bat | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/xb1build.bat b/src/xb1build.bat new file mode 100644 index 00000000..847e84a5 --- /dev/null +++ b/src/xb1build.bat | |||
@@ -0,0 +1,101 @@ | |||
1 | @rem Script to build LuaJIT with the Xbox One SDK. | ||
2 | @rem Donated to the public domain. | ||
3 | @rem | ||
4 | @rem Open a "Visual Studio .NET Command Prompt" (64 bit host compiler) | ||
5 | @rem Then cd to this directory and run this script. | ||
6 | |||
7 | @if not defined INCLUDE goto :FAIL | ||
8 | @if not defined DurangoXDK goto :FAIL | ||
9 | |||
10 | @setlocal | ||
11 | @echo ---- Host compiler ---- | ||
12 | @set LJCOMPILE=cl /nologo /c /MD /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /DLUAJIT_ENABLE_GC64 | ||
13 | @set LJLINK=link /nologo | ||
14 | @set LJMT=mt /nologo | ||
15 | @set DASMDIR=..\dynasm | ||
16 | @set DASM=%DASMDIR%\dynasm.lua | ||
17 | @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 | ||
18 | |||
19 | %LJCOMPILE% host\minilua.c | ||
20 | @if errorlevel 1 goto :BAD | ||
21 | %LJLINK% /out:minilua.exe minilua.obj | ||
22 | @if errorlevel 1 goto :BAD | ||
23 | if exist minilua.exe.manifest^ | ||
24 | %LJMT% -manifest minilua.exe.manifest -outputresource:minilua.exe | ||
25 | |||
26 | @rem Error out for 64 bit host compiler | ||
27 | @minilua | ||
28 | @if not errorlevel 8 goto :FAIL | ||
29 | |||
30 | @set DASMFLAGS=-D WIN -D FFI -D P64 | ||
31 | minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h vm_x64.dasc | ||
32 | @if errorlevel 1 goto :BAD | ||
33 | |||
34 | %LJCOMPILE% /I "." /I %DASMDIR% /D_DURANGO host\buildvm*.c | ||
35 | @if errorlevel 1 goto :BAD | ||
36 | %LJLINK% /out:buildvm.exe buildvm*.obj | ||
37 | @if errorlevel 1 goto :BAD | ||
38 | if exist buildvm.exe.manifest^ | ||
39 | %LJMT% -manifest buildvm.exe.manifest -outputresource:buildvm.exe | ||
40 | |||
41 | buildvm -m peobj -o lj_vm.obj | ||
42 | @if errorlevel 1 goto :BAD | ||
43 | buildvm -m bcdef -o lj_bcdef.h %ALL_LIB% | ||
44 | @if errorlevel 1 goto :BAD | ||
45 | buildvm -m ffdef -o lj_ffdef.h %ALL_LIB% | ||
46 | @if errorlevel 1 goto :BAD | ||
47 | buildvm -m libdef -o lj_libdef.h %ALL_LIB% | ||
48 | @if errorlevel 1 goto :BAD | ||
49 | buildvm -m recdef -o lj_recdef.h %ALL_LIB% | ||
50 | @if errorlevel 1 goto :BAD | ||
51 | buildvm -m vmdef -o jit\vmdef.lua %ALL_LIB% | ||
52 | @if errorlevel 1 goto :BAD | ||
53 | buildvm -m folddef -o lj_folddef.h lj_opt_fold.c | ||
54 | @if errorlevel 1 goto :BAD | ||
55 | |||
56 | @echo ---- Cross compiler ---- | ||
57 | |||
58 | @set CWD=%cd% | ||
59 | @call "%DurangoXDK%\xdk\DurangoVars.cmd" XDK | ||
60 | @cd /D "%CWD%" | ||
61 | @shift | ||
62 | |||
63 | @set LJCOMPILE="cl" /nologo /c /W3 /GF /Gm- /GR- /GS- /Gy /openmp- /D_CRT_SECURE_NO_DEPRECATE /D_LIB /D_UNICODE /D_DURANGO | ||
64 | @set LJLIB="lib" /nologo | ||
65 | |||
66 | @if "%1"=="debug" ( | ||
67 | @shift | ||
68 | @set LJCOMPILE=%LJCOMPILE% /Zi /MDd /Od | ||
69 | @set LJLINK=%LJLINK% /debug | ||
70 | ) else ( | ||
71 | @set LJCOMPILE=%LJCOMPILE% /MD /O2 /DNDEBUG | ||
72 | ) | ||
73 | |||
74 | @if "%1"=="amalg" goto :AMALG | ||
75 | %LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c | ||
76 | @if errorlevel 1 goto :BAD | ||
77 | %LJLIB% /OUT:luajit.lib lj_*.obj lib_*.obj | ||
78 | @if errorlevel 1 goto :BAD | ||
79 | @goto :NOAMALG | ||
80 | :AMALG | ||
81 | %LJCOMPILE% /DLUA_BUILD_AS_DLL ljamalg.c | ||
82 | @if errorlevel 1 goto :BAD | ||
83 | %LJLIB% /OUT:luajit.lib ljamalg.obj lj_vm.obj | ||
84 | @if errorlevel 1 goto :BAD | ||
85 | :NOAMALG | ||
86 | |||
87 | @del *.obj *.manifest minilua.exe buildvm.exe | ||
88 | @echo. | ||
89 | @echo === Successfully built LuaJIT for Xbox One === | ||
90 | |||
91 | @goto :END | ||
92 | :BAD | ||
93 | @echo. | ||
94 | @echo ******************************************************* | ||
95 | @echo *** Build FAILED -- Please check the error messages *** | ||
96 | @echo ******************************************************* | ||
97 | @goto :END | ||
98 | :FAIL | ||
99 | @echo To run this script you must open a "Visual Studio .NET Command Prompt" | ||
100 | @echo (64 bit host compiler). The Xbox One SDK must be installed, too. | ||
101 | :END | ||