diff options
Diffstat (limited to '')
-rw-r--r-- | src/ps4build.bat | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/ps4build.bat b/src/ps4build.bat new file mode 100644 index 00000000..42fc9a64 --- /dev/null +++ b/src/ps4build.bat | |||
@@ -0,0 +1,103 @@ | |||
1 | @rem Script to build LuaJIT with the PS4 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 SCE_ORBIS_SDK_DIR goto :FAIL | ||
9 | |||
10 | @setlocal | ||
11 | @rem ---- Host compiler ---- | ||
12 | @set LJCOMPILE=cl /nologo /c /MD /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE | ||
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 Check for 64 bit host compiler. | ||
27 | @minilua | ||
28 | @if not errorlevel 8 goto :FAIL | ||
29 | |||
30 | @set DASMFLAGS=-D P64 | ||
31 | minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h vm_x86.dasc | ||
32 | @if errorlevel 1 goto :BAD | ||
33 | |||
34 | %LJCOMPILE% /I "." /I %DASMDIR% -DLUAJIT_TARGET=LUAJIT_ARCH_X64 -DLUAJIT_OS=LUAJIT_OS_OTHER -DLUAJIT_DISABLE_JIT -DLUAJIT_DISABLE_FFI 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 elfasm -o lj_vm.s | ||
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 | @rem ---- Cross compiler ---- | ||
57 | @set LJCOMPILE="%SCE_ORBIS_SDK_DIR%\host_tools\bin\orbis-clang" -c -Wall -DLUAJIT_DISABLE_FFI | ||
58 | @set LJLIB="%SCE_ORBIS_SDK_DIR%\host_tools\bin\orbis-ar" rcus | ||
59 | @set INCLUDE="" | ||
60 | |||
61 | orbis-as -o lj_vm.o lj_vm.s | ||
62 | |||
63 | @if "%1" neq "debug" goto :NODEBUG | ||
64 | @shift | ||
65 | @set LJCOMPILE=%LJCOMPILE% -g -O0 | ||
66 | @set TARGETLIB=libluajitD.a | ||
67 | goto :BUILD | ||
68 | :NODEBUG | ||
69 | @set LJCOMPILE=%LJCOMPILE% -O2 | ||
70 | @set TARGETLIB=libluajit.a | ||
71 | :BUILD | ||
72 | del %TARGETLIB% | ||
73 | @if "%1"=="amalg" goto :AMALG | ||
74 | for %%f in (lj_*.c lib_*.c) do ( | ||
75 | %LJCOMPILE% %%f | ||
76 | @if errorlevel 1 goto :BAD | ||
77 | ) | ||
78 | |||
79 | %LJLIB% %TARGETLIB% lj_*.o lib_*.o | ||
80 | @if errorlevel 1 goto :BAD | ||
81 | @goto :NOAMALG | ||
82 | :AMALG | ||
83 | %LJCOMPILE% ljamalg.c | ||
84 | @if errorlevel 1 goto :BAD | ||
85 | %LJLIB% %TARGETLIB% ljamalg.o lj_vm.o | ||
86 | @if errorlevel 1 goto :BAD | ||
87 | :NOAMALG | ||
88 | |||
89 | @del *.o *.obj *.manifest minilua.exe buildvm.exe | ||
90 | @echo. | ||
91 | @echo === Successfully built LuaJIT for PS4 === | ||
92 | |||
93 | @goto :END | ||
94 | :BAD | ||
95 | @echo. | ||
96 | @echo ******************************************************* | ||
97 | @echo *** Build FAILED -- Please check the error messages *** | ||
98 | @echo ******************************************************* | ||
99 | @goto :END | ||
100 | :FAIL | ||
101 | @echo To run this script you must open a "Visual Studio .NET Command Prompt" | ||
102 | @echo (64 bit host compiler). The PS4 Orbis SDK must be installed, too. | ||
103 | :END | ||