diff options
| author | Mike Pall <mike> | 2014-04-27 00:09:45 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2014-04-27 00:09:45 +0200 |
| commit | 7a39be0ac45d8cd19c13bab38d4dda31ea599760 (patch) | |
| tree | 502799316175fed602af6e9d93462b02120b6f9c | |
| parent | 2715fe3aee7c8202b4b5d04748d1c5faa6d8fd9c (diff) | |
| download | luajit-7a39be0ac45d8cd19c13bab38d4dda31ea599760.tar.gz luajit-7a39be0ac45d8cd19c13bab38d4dda31ea599760.tar.bz2 luajit-7a39be0ac45d8cd19c13bab38d4dda31ea599760.zip | |
Add PS Vita port.
Thanks to Anton Stenmark.
| -rw-r--r-- | doc/install.html | 57 | ||||
| -rw-r--r-- | doc/luajit.html | 8 | ||||
| -rw-r--r-- | src/host/buildvm_asm.c | 2 | ||||
| -rw-r--r-- | src/lib_io.c | 2 | ||||
| -rw-r--r-- | src/lib_os.c | 11 | ||||
| -rw-r--r-- | src/lj_arch.h | 5 | ||||
| -rw-r--r-- | src/lj_def.h | 8 | ||||
| -rw-r--r-- | src/psvitabuild.bat | 93 |
8 files changed, 158 insertions, 28 deletions
diff --git a/doc/install.html b/doc/install.html index 2388ff33..f8163153 100644 --- a/doc/install.html +++ b/doc/install.html | |||
| @@ -127,7 +127,7 @@ operating systems, CPUs and compilers: | |||
| 127 | <tr class="odd"> | 127 | <tr class="odd"> |
| 128 | <td class="compatcpu"><a href="#cross2">ARMv5+<br>ARM9E+</a></td> | 128 | <td class="compatcpu"><a href="#cross2">ARMv5+<br>ARM9E+</a></td> |
| 129 | <td class="compatos">GCC 4.2+</td> | 129 | <td class="compatos">GCC 4.2+</td> |
| 130 | <td class="compatos">GCC 4.2+</td> | 130 | <td class="compatos">GCC 4.2+<br>PSP2 (<a href="#psvita">PS VITA</a>)</td> |
| 131 | <td class="compatos">GCC 4.2+</td> | 131 | <td class="compatos">GCC 4.2+</td> |
| 132 | <td class="compatos compatno"> </td> | 132 | <td class="compatos compatno"> </td> |
| 133 | </tr> | 133 | </tr> |
| @@ -458,41 +458,56 @@ ISDKF="-arch armv7 -isysroot $ISDK/SDKs/$ISDKVER" | |||
| 458 | make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \ | 458 | make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \ |
| 459 | TARGET_SYS=iOS | 459 | TARGET_SYS=iOS |
| 460 | </pre> | 460 | </pre> |
| 461 | |||
| 462 | <h3 id="consoles">Cross-compiling for consoles</h3> | ||
| 461 | <p> | 463 | <p> |
| 462 | You can cross-compile for <b id="ps3">PS3</b> using the PS3 SDK from | 464 | Building LuaJIT for consoles requires both a supported host compiler |
| 463 | a Linux host or a Windows host (requires 32 bit MinGW (GCC) on the host, | 465 | (x86 or x64) and a cross-compiler (to PPC or ARM) from the official |
| 464 | too). Due to restrictions on consoles, the JIT compiler is disabled and | 466 | console SDK. |
| 465 | only the fast interpreter is built: | ||
| 466 | </p> | 467 | </p> |
| 467 | <pre class="code"> | ||
| 468 | make HOST_CC="gcc -m32" CROSS=ppu-lv2- | ||
| 469 | </pre> | ||
| 470 | <p> | 468 | <p> |
| 471 | You can cross-compile for <b id="ps4">PS4</b> from a Windows host using | 469 | Due to restrictions on consoles, the JIT compiler is disabled and only |
| 472 | the PS4 SDK (ORBIS) plus 64 bit MSVC. Due to restrictions on | 470 | the fast interpreter is built. This is still faster than plain Lua, |
| 473 | consoles, the JIT compiler is disabled and only the fast interpreter | 471 | but much slower than the JIT compiler. The FFI is disabled, too, since |
| 474 | is built. | 472 | it's not very useful in such an environment. |
| 475 | </p> | 473 | </p> |
| 476 | <p> | 474 | <p> |
| 477 | Open a "Visual Studio .NET Command Prompt" (64 bit host compiler), | 475 | The following commands build a static library <tt>libluajit.a</tt>, |
| 478 | <tt>cd</tt> to the directory where you've unpacked the sources and run | ||
| 479 | the following commands. This builds a static library <tt>libluajit.a</tt>, | ||
| 480 | which can be linked against your game, just like the Lua library. | 476 | which can be linked against your game, just like the Lua library. |
| 481 | </p> | 477 | </p> |
| 478 | <p> | ||
| 479 | To cross-compile for <b id="ps3">PS3</b> from a Linux host (requires | ||
| 480 | 32 bit GCC, i.e. multilib Linux/x64) or a Windows host (requires | ||
| 481 | 32 bit MinGW), run this command: | ||
| 482 | </p> | ||
| 483 | <pre class="code"> | ||
| 484 | make HOST_CC="gcc -m32" CROSS=ppu-lv2- | ||
| 485 | </pre> | ||
| 486 | <p> | ||
| 487 | To cross-compile for <b id="ps4">PS4</b> from a Windows host, | ||
| 488 | open a "Visual Studio .NET Command Prompt" (64 bit host compiler), | ||
| 489 | <tt>cd</tt> to the directory where you've unpacked the sources and | ||
| 490 | run the following commands: | ||
| 491 | </p> | ||
| 482 | <pre class="code"> | 492 | <pre class="code"> |
| 483 | cd src | 493 | cd src |
| 484 | ps4build | 494 | ps4build |
| 485 | </pre> | 495 | </pre> |
| 486 | <p> | 496 | <p> |
| 487 | You can cross-compile for <b id="xbox360">Xbox 360</b> using the | 497 | To cross-compile for <b id="psvita">PS Vita</b> from a Windows host, |
| 488 | Xbox 360 SDK (MSVC + XEDK). Due to restrictions on consoles, the | 498 | open a "Visual Studio .NET Command Prompt" (32 bit host compiler), |
| 489 | JIT compiler is disabled and only the fast interpreter is built. | 499 | <tt>cd</tt> to the directory where you've unpacked the sources and |
| 500 | run the following commands: | ||
| 490 | </p> | 501 | </p> |
| 502 | <pre class="code"> | ||
| 503 | cd src | ||
| 504 | psvitabuild | ||
| 505 | </pre> | ||
| 491 | <p> | 506 | <p> |
| 492 | Open a "Visual Studio .NET Command Prompt" (32 bit host compiler), | 507 | To cross-compile for <b id="xbox360">Xbox 360</b> from a Windows host, |
| 508 | open a "Visual Studio .NET Command Prompt" (32 bit host compiler), | ||
| 493 | <tt>cd</tt> to the directory where you've unpacked the sources and run | 509 | <tt>cd</tt> to the directory where you've unpacked the sources and run |
| 494 | the following commands. This builds a static library <tt>luajit20.lib</tt>, | 510 | the following commands: |
| 495 | which can be linked against your game, just like the Lua library. | ||
| 496 | </p> | 511 | </p> |
| 497 | <pre class="code"> | 512 | <pre class="code"> |
| 498 | cd src | 513 | cd src |
diff --git a/doc/luajit.html b/doc/luajit.html index 43af69c9..ddbc0164 100644 --- a/doc/luajit.html +++ b/doc/luajit.html | |||
| @@ -38,6 +38,9 @@ table.os1 td { | |||
| 38 | table.os2 td { | 38 | table.os2 td { |
| 39 | color: #ffa040; | 39 | color: #ffa040; |
| 40 | } | 40 | } |
| 41 | table.os3 td { | ||
| 42 | color: #40ffff; | ||
| 43 | } | ||
| 41 | table.compiler td { | 44 | table.compiler td { |
| 42 | color: #2080ff; | 45 | color: #2080ff; |
| 43 | background: #62bf41; | 46 | background: #62bf41; |
| @@ -158,7 +161,10 @@ LuaJIT is Copyright © 2005-2014 Mike Pall, released under the | |||
| 158 | <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr> | 161 | <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr> |
| 159 | </table> | 162 | </table> |
| 160 | <table class="feature os os2"> | 163 | <table class="feature os os2"> |
| 161 | <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td><td>PS3</td><td>PS4</td><td>Xbox 360</td></tr> | 164 | <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td></tr> |
| 165 | </table> | ||
| 166 | <table class="feature os os3"> | ||
| 167 | <tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td></tr> | ||
| 162 | </table> | 168 | </table> |
| 163 | <table class="feature compiler"> | 169 | <table class="feature compiler"> |
| 164 | <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr> | 170 | <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr> |
diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c index 9b28b3b3..079e9a80 100644 --- a/src/host/buildvm_asm.c +++ b/src/host/buildvm_asm.c | |||
| @@ -286,7 +286,7 @@ void emit_asm(BuildCtx *ctx) | |||
| 286 | fprintf(ctx->fp, "\n"); | 286 | fprintf(ctx->fp, "\n"); |
| 287 | switch (ctx->mode) { | 287 | switch (ctx->mode) { |
| 288 | case BUILD_elfasm: | 288 | case BUILD_elfasm: |
| 289 | #if !LJ_TARGET_PS3 | 289 | #if !(LJ_TARGET_PS3 || LJ_TARGET_PSVITA) |
| 290 | fprintf(ctx->fp, "\t.section .note.GNU-stack,\"\"," ELFASM_PX "progbits\n"); | 290 | fprintf(ctx->fp, "\t.section .note.GNU-stack,\"\"," ELFASM_PX "progbits\n"); |
| 291 | #endif | 291 | #endif |
| 292 | #if LJ_TARGET_PPCSPE | 292 | #if LJ_TARGET_PPCSPE |
diff --git a/src/lib_io.c b/src/lib_io.c index 04f0f739..90f310bb 100644 --- a/src/lib_io.c +++ b/src/lib_io.c | |||
| @@ -426,7 +426,7 @@ LJLIB_CF(io_popen) | |||
| 426 | LJLIB_CF(io_tmpfile) | 426 | LJLIB_CF(io_tmpfile) |
| 427 | { | 427 | { |
| 428 | IOFileUD *iof = io_file_new(L); | 428 | IOFileUD *iof = io_file_new(L); |
| 429 | #if LJ_TARGET_PS3 || LJ_TARGET_PS4 | 429 | #if LJ_TARGET_PS3 || LJ_TARGET_PS4 || LJ_TARGET_PSVITA |
| 430 | iof->fp = NULL; errno = ENOSYS; | 430 | iof->fp = NULL; errno = ENOSYS; |
| 431 | #else | 431 | #else |
| 432 | iof->fp = tmpfile(); | 432 | iof->fp = tmpfile(); |
diff --git a/src/lib_os.c b/src/lib_os.c index f62e8c8b..713ec935 100644 --- a/src/lib_os.c +++ b/src/lib_os.c | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <errno.h> | 9 | #include <errno.h> |
| 10 | #include <locale.h> | ||
| 11 | #include <time.h> | 10 | #include <time.h> |
| 12 | 11 | ||
| 13 | #define lib_os_c | 12 | #define lib_os_c |
| @@ -27,6 +26,10 @@ | |||
| 27 | #include <stdio.h> | 26 | #include <stdio.h> |
| 28 | #endif | 27 | #endif |
| 29 | 28 | ||
| 29 | #if !LJ_TARGET_PSVITA | ||
| 30 | #include <locale.h> | ||
| 31 | #endif | ||
| 32 | |||
| 30 | /* ------------------------------------------------------------------------ */ | 33 | /* ------------------------------------------------------------------------ */ |
| 31 | 34 | ||
| 32 | #define LJLIB_MODULE_os | 35 | #define LJLIB_MODULE_os |
| @@ -70,7 +73,7 @@ LJLIB_CF(os_rename) | |||
| 70 | 73 | ||
| 71 | LJLIB_CF(os_tmpname) | 74 | LJLIB_CF(os_tmpname) |
| 72 | { | 75 | { |
| 73 | #if LJ_TARGET_PS3 || LJ_TARGET_PS4 | 76 | #if LJ_TARGET_PS3 || LJ_TARGET_PS4 || LJ_TARGET_PSVITA |
| 74 | lj_err_caller(L, LJ_ERR_OSUNIQF); | 77 | lj_err_caller(L, LJ_ERR_OSUNIQF); |
| 75 | return 0; | 78 | return 0; |
| 76 | #else | 79 | #else |
| @@ -254,6 +257,9 @@ LJLIB_CF(os_difftime) | |||
| 254 | 257 | ||
| 255 | LJLIB_CF(os_setlocale) | 258 | LJLIB_CF(os_setlocale) |
| 256 | { | 259 | { |
| 260 | #if LJ_TARGET_PSVITA | ||
| 261 | lua_pushliteral(L, "C"); | ||
| 262 | #else | ||
| 257 | GCstr *s = lj_lib_optstr(L, 1); | 263 | GCstr *s = lj_lib_optstr(L, 1); |
| 258 | const char *str = s ? strdata(s) : NULL; | 264 | const char *str = s ? strdata(s) : NULL; |
| 259 | int opt = lj_lib_checkopt(L, 2, 6, | 265 | int opt = lj_lib_checkopt(L, 2, 6, |
| @@ -265,6 +271,7 @@ LJLIB_CF(os_setlocale) | |||
| 265 | else if (opt == 4) opt = LC_MONETARY; | 271 | else if (opt == 4) opt = LC_MONETARY; |
| 266 | else if (opt == 6) opt = LC_ALL; | 272 | else if (opt == 6) opt = LC_ALL; |
| 267 | lua_pushstring(L, setlocale(opt, str)); | 273 | lua_pushstring(L, setlocale(opt, str)); |
| 274 | #endif | ||
| 268 | return 1; | 275 | return 1; |
| 269 | } | 276 | } |
| 270 | 277 | ||
diff --git a/src/lj_arch.h b/src/lj_arch.h index 0196eedc..f04da3bf 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
| @@ -111,6 +111,11 @@ | |||
| 111 | #define NULL ((void*)0) | 111 | #define NULL ((void*)0) |
| 112 | #endif | 112 | #endif |
| 113 | 113 | ||
| 114 | #ifdef __psp2__ | ||
| 115 | #define LJ_TARGET_PSVITA 1 | ||
| 116 | #define LJ_TARGET_CONSOLE 1 | ||
| 117 | #endif | ||
| 118 | |||
| 114 | #if _XBOX_VER >= 200 | 119 | #if _XBOX_VER >= 200 |
| 115 | #define LJ_TARGET_XBOX360 1 | 120 | #define LJ_TARGET_XBOX360 1 |
| 116 | #define LJ_TARGET_CONSOLE 1 | 121 | #define LJ_TARGET_CONSOLE 1 |
diff --git a/src/lj_def.h b/src/lj_def.h index 3c43be78..8624aed2 100644 --- a/src/lj_def.h +++ b/src/lj_def.h | |||
| @@ -111,7 +111,7 @@ typedef uintptr_t BloomFilter; | |||
| 111 | #define bloomset(b, x) ((b) |= bloombit((x))) | 111 | #define bloomset(b, x) ((b) |= bloombit((x))) |
| 112 | #define bloomtest(b, x) ((b) & bloombit((x))) | 112 | #define bloomtest(b, x) ((b) & bloombit((x))) |
| 113 | 113 | ||
| 114 | #if defined(__GNUC__) | 114 | #if defined(__GNUC__) || defined(__psp2__) |
| 115 | 115 | ||
| 116 | #define LJ_NORET __attribute__((noreturn)) | 116 | #define LJ_NORET __attribute__((noreturn)) |
| 117 | #define LJ_ALIGN(n) __attribute__((aligned(n))) | 117 | #define LJ_ALIGN(n) __attribute__((aligned(n))) |
| @@ -119,7 +119,7 @@ typedef uintptr_t BloomFilter; | |||
| 119 | #define LJ_AINLINE inline __attribute__((always_inline)) | 119 | #define LJ_AINLINE inline __attribute__((always_inline)) |
| 120 | #define LJ_NOINLINE __attribute__((noinline)) | 120 | #define LJ_NOINLINE __attribute__((noinline)) |
| 121 | 121 | ||
| 122 | #if defined(__ELF__) || defined(__MACH__) | 122 | #if defined(__ELF__) || defined(__MACH__) || defined(__psp2__) |
| 123 | #if !((defined(__sun__) && defined(__svr4__)) || defined(__CELLOS_LV2__)) | 123 | #if !((defined(__sun__) && defined(__svr4__)) || defined(__CELLOS_LV2__)) |
| 124 | #define LJ_NOAPI extern __attribute__((visibility("hidden"))) | 124 | #define LJ_NOAPI extern __attribute__((visibility("hidden"))) |
| 125 | #endif | 125 | #endif |
| @@ -150,6 +150,9 @@ static LJ_AINLINE uint32_t lj_fls(uint32_t x) | |||
| 150 | #if defined(__arm__) | 150 | #if defined(__arm__) |
| 151 | static LJ_AINLINE uint32_t lj_bswap(uint32_t x) | 151 | static LJ_AINLINE uint32_t lj_bswap(uint32_t x) |
| 152 | { | 152 | { |
| 153 | #if defined(__psp2__) | ||
| 154 | return __builtin_rev(x); | ||
| 155 | #else | ||
| 153 | uint32_t r; | 156 | uint32_t r; |
| 154 | #if __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6T2__ || __ARM_ARCH_6Z__ ||\ | 157 | #if __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6T2__ || __ARM_ARCH_6Z__ ||\ |
| 155 | __ARM_ARCH_6ZK__ || __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ | 158 | __ARM_ARCH_6ZK__ || __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ |
| @@ -163,6 +166,7 @@ static LJ_AINLINE uint32_t lj_bswap(uint32_t x) | |||
| 163 | #endif | 166 | #endif |
| 164 | return ((r & 0xff00ffffu) >> 8) ^ lj_ror(x, 8); | 167 | return ((r & 0xff00ffffu) >> 8) ^ lj_ror(x, 8); |
| 165 | #endif | 168 | #endif |
| 169 | #endif | ||
| 166 | } | 170 | } |
| 167 | 171 | ||
| 168 | static LJ_AINLINE uint64_t lj_bswap64(uint64_t x) | 172 | static LJ_AINLINE uint64_t lj_bswap64(uint64_t x) |
diff --git a/src/psvitabuild.bat b/src/psvitabuild.bat new file mode 100644 index 00000000..3991dc65 --- /dev/null +++ b/src/psvitabuild.bat | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | @rem Script to build LuaJIT with the PS Vita SDK. | ||
| 2 | @rem Donated to the public domain. | ||
| 3 | @rem | ||
| 4 | @rem Open a "Visual Studio .NET Command Prompt" (32 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_PSP2_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 32 bit host compiler. | ||
| 27 | @minilua | ||
| 28 | @if errorlevel 8 goto :FAIL | ||
| 29 | |||
| 30 | @set DASMFLAGS=-D FPU -D HFABI | ||
| 31 | minilua %DASM% -LN %DASMFLAGS% -o host\buildvm_arch.h vm_arm.dasc | ||
| 32 | @if errorlevel 1 goto :BAD | ||
| 33 | |||
| 34 | %LJCOMPILE% /I "." /I %DASMDIR% -DLUAJIT_TARGET=LUAJIT_ARCH_ARM -DLUAJIT_OS=LUAJIT_OS_OTHER -DLUAJIT_DISABLE_JIT -DLUAJIT_DISABLE_FFI -DLJ_TARGET_PSVITA=1 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_PSP2_SDK_DIR%\host_tools\build\bin\psp2snc" -c -w -DLUAJIT_DISABLE_FFI -DLUAJIT_USE_SYSMALLOC | ||
| 58 | @set LJLIB="%SCE_PSP2_SDK_DIR%\host_tools\build\bin\psp2ld32" -r --output= | ||
| 59 | @set INCLUDE="" | ||
| 60 | |||
| 61 | "%SCE_PSP2_SDK_DIR%\host_tools\build\bin\psp2as" -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 | |||
| 74 | %LJCOMPILE% ljamalg.c | ||
| 75 | @if errorlevel 1 goto :BAD | ||
| 76 | %LJLIB%%TARGETLIB% ljamalg.o lj_vm.o | ||
| 77 | @if errorlevel 1 goto :BAD | ||
| 78 | |||
| 79 | @del *.o *.obj *.manifest minilua.exe buildvm.exe | ||
| 80 | @echo. | ||
| 81 | @echo === Successfully built LuaJIT for PS Vita === | ||
| 82 | |||
| 83 | @goto :END | ||
| 84 | :BAD | ||
| 85 | @echo. | ||
| 86 | @echo ******************************************************* | ||
| 87 | @echo *** Build FAILED -- Please check the error messages *** | ||
| 88 | @echo ******************************************************* | ||
| 89 | @goto :END | ||
| 90 | :FAIL | ||
| 91 | @echo To run this script you must open a "Visual Studio .NET Command Prompt" | ||
| 92 | @echo (32 bit host compiler). The PS Vita SDK must be installed, too. | ||
| 93 | :END | ||
