@rem Donated to the public domain.\r
@rem\r
@rem Open a "Visual Studio .NET Command Prompt" (64 bit host compiler)\r
+@rem or "VS2015 x64 Native Tools Command Prompt".\r
+@rem\r
@rem Then cd to this directory and run this script.\r
+@rem\r
+@rem Recommended invocation:\r
+@rem\r
+@rem ps4build release build, amalgamated, 64-bit GC\r
+@rem ps4build debug debug build, amalgamated, 64-bit GC\r
+@rem\r
+@rem Additional command-line options (not generally recommended):\r
+@rem\r
+@rem gc32 (before debug) 32-bit GC\r
+@rem noamalg (after debug) non-amalgamated build\r
\r
@if not defined INCLUDE goto :FAIL\r
@if not defined SCE_ORBIS_SDK_DIR goto :FAIL\r
@set DASMDIR=..\dynasm\r
@set DASM=%DASMDIR%\dynasm.lua\r
@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\r
+@set GC64=-DLUAJIT_ENABLE_GC64\r
+@set DASC=vm_x64.dasc\r
+\r
+@if "%1" neq "gc32" goto :NOGC32\r
+@shift\r
+@set GC64=\r
+@set DASC=vm_x86.dasc\r
+:NOGC32\r
\r
%LJCOMPILE% host\minilua.c\r
@if errorlevel 1 goto :BAD\r
@if not errorlevel 8 goto :FAIL\r
\r
@set DASMFLAGS=-D P64 -D NO_UNWIND\r
-minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h vm_x86.dasc\r
+minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h %DASC%\r
@if errorlevel 1 goto :BAD\r
\r
-%LJCOMPILE% /I "." /I %DASMDIR% -DLUAJIT_TARGET=LUAJIT_ARCH_X64 -DLUAJIT_OS=LUAJIT_OS_OTHER -DLUAJIT_DISABLE_JIT -DLUAJIT_DISABLE_FFI -DLUAJIT_NO_UNWIND host\buildvm*.c\r
+%LJCOMPILE% /I "." /I %DASMDIR% %GC64% -DLUAJIT_TARGET=LUAJIT_ARCH_X64 -DLUAJIT_OS=LUAJIT_OS_OTHER -DLUAJIT_DISABLE_JIT -DLUAJIT_DISABLE_FFI -DLUAJIT_NO_UNWIND host\buildvm*.c\r
@if errorlevel 1 goto :BAD\r
%LJLINK% /out:buildvm.exe buildvm*.obj\r
@if errorlevel 1 goto :BAD\r
@if errorlevel 1 goto :BAD\r
\r
@rem ---- Cross compiler ----\r
-@set LJCOMPILE="%SCE_ORBIS_SDK_DIR%\host_tools\bin\orbis-clang" -c -Wall -DLUAJIT_DISABLE_FFI\r
+@set LJCOMPILE="%SCE_ORBIS_SDK_DIR%\host_tools\bin\orbis-clang" -c -Wall -DLUAJIT_DISABLE_FFI %GC64%\r
@set LJLIB="%SCE_ORBIS_SDK_DIR%\host_tools\bin\orbis-ar" rcus\r
@set INCLUDE=""\r
\r
@if "%1" neq "debug" goto :NODEBUG\r
@shift\r
@set LJCOMPILE=%LJCOMPILE% -g -O0\r
-@set TARGETLIB=libluajitD.a\r
+@set TARGETLIB=libluajitD_ps4.a\r
goto :BUILD\r
:NODEBUG\r
@set LJCOMPILE=%LJCOMPILE% -O2\r
-@set TARGETLIB=libluajit.a\r
+@set TARGETLIB=libluajit_ps4.a\r
:BUILD\r
del %TARGETLIB%\r
-@if "%1"=="amalg" goto :AMALG\r
+@if "%1" neq "noamalg" goto :AMALG\r
for %%f in (lj_*.c lib_*.c) do (\r
%LJCOMPILE% %%f\r
@if errorlevel 1 goto :BAD\r