diff options
| author | Mike Pall <mike> | 2011-04-28 19:41:34 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2011-04-28 19:41:34 +0200 |
| commit | 0ba34ffe50e9572e27cebb8c2fae4d46862114ef (patch) | |
| tree | abc04617cb945a0c21d6537f20e91857596aa1f2 /doc | |
| parent | 7ff84097976f09dfa306e0fb20103292bef9aee3 (diff) | |
| download | luajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.tar.gz luajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.tar.bz2 luajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.zip | |
ARM: Fix ABI and build issues for iOS. Now works on iOS 3.0+.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/install.html | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/doc/install.html b/doc/install.html index de934abc..f6c99c17 100644 --- a/doc/install.html +++ b/doc/install.html | |||
| @@ -97,14 +97,14 @@ make && sudo make install | |||
| 97 | <p> | 97 | <p> |
| 98 | LuaJIT currently builds out-of-the box on most systems. | 98 | LuaJIT currently builds out-of-the box on most systems. |
| 99 | Here's the compatibility matrix for the supported combinations of | 99 | Here's the compatibility matrix for the supported combinations of |
| 100 | operating system, CPU and compilers: | 100 | operating systems, CPUs and compilers: |
| 101 | </p> | 101 | </p> |
| 102 | <table class="compat"> | 102 | <table class="compat"> |
| 103 | <tr class="compathead"> | 103 | <tr class="compathead"> |
| 104 | <td class="compatcpu">CPU / OS</td> | 104 | <td class="compatcpu">CPU / OS</td> |
| 105 | <td class="compatos"><a href="#posix">Linux</a> or<br><a href="#cross">Android</a></td> | 105 | <td class="compatos"><a href="#posix">Linux</a> or<br><a href="#android">Android</a></td> |
| 106 | <td class="compatos"><a href="#posix">*BSD, other</a></td> | 106 | <td class="compatos"><a href="#posix">*BSD, Other</a></td> |
| 107 | <td class="compatos"><a href="#posix">OSX<br>10.3-10.6</a></td> | 107 | <td class="compatos"><a href="#posix">OSX 10.3+</a> or<br><a href="#ios">iOS 3.0+</a></td> |
| 108 | <td class="compatos"><a href="#windows">Windows<br>98/XP/Vista/7</a></td> | 108 | <td class="compatos"><a href="#windows">Windows<br>98/XP/Vista/7</a></td> |
| 109 | </tr> | 109 | </tr> |
| 110 | <tr class="odd separate"> | 110 | <tr class="odd separate"> |
| @@ -122,10 +122,10 @@ operating system, CPU and compilers: | |||
| 122 | <td class="compatos">MSVC + SDK v7.0<br>WinSDK v7.0</td> | 122 | <td class="compatos">MSVC + SDK v7.0<br>WinSDK v7.0</td> |
| 123 | </tr> | 123 | </tr> |
| 124 | <tr class="odd"> | 124 | <tr class="odd"> |
| 125 | <td class="compatcpu">ARM</td> | 125 | <td class="compatcpu">ARMv5+<br>ARM9E+</td> |
| 126 | <td class="compatos">GCC 4.2+</td> | ||
| 126 | <td class="compatos">GCC 4.2+</td> | 127 | <td class="compatos">GCC 4.2+</td> |
| 127 | <td class="compatos">GCC 4.2+</td> | 128 | <td class="compatos">GCC 4.2+</td> |
| 128 | <td class="compatos compatno"> </td> | ||
| 129 | <td class="compatos compatno"> </td> | 129 | <td class="compatos compatno"> </td> |
| 130 | </tr> | 130 | </tr> |
| 131 | <tr class="even"> | 131 | <tr class="even"> |
| @@ -342,14 +342,6 @@ installing the <tt>mingw32</tt> package and running: | |||
| 342 | make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows | 342 | make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows |
| 343 | </pre> | 343 | </pre> |
| 344 | <p> | 344 | <p> |
| 345 | Whenever the <b>host OS and the target OS differ</b>, you need to specify | ||
| 346 | <tt>TARGET_SYS</tt> or you'll get assembler or linker errors. E.g. if | ||
| 347 | you're compiling on a Windows or OSX host for embedded Linux or Android, | ||
| 348 | you need to add <tt>TARGET_SYS=Linux</tt> to the examples below. For a | ||
| 349 | minimal target OS, you may need to disable the built-in allocator in | ||
| 350 | <tt>src/Makefile</tt> and use <tt>TARGET_SYS=Other</tt>. | ||
| 351 | </p> | ||
| 352 | <p> | ||
| 353 | You can cross-compile for an <b>ARM target</b> on an x86 or x64 host | 345 | You can cross-compile for an <b>ARM target</b> on an x86 or x64 host |
| 354 | system using a standard GNU cross-compile toolchain (Binutils, GCC, | 346 | system using a standard GNU cross-compile toolchain (Binutils, GCC, |
| 355 | EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the | 347 | EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the |
| @@ -359,7 +351,7 @@ EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the | |||
| 359 | make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- TARGET=arm | 351 | make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- TARGET=arm |
| 360 | </pre> | 352 | </pre> |
| 361 | <p> | 353 | <p> |
| 362 | You can cross-compile for <b>Android (ARM)</b> using the <a href="http://developer.android.com/sdk/ndk/index.html"><span class="ext">»</span> Android NDK</a>. | 354 | You can cross-compile for <b id="android">Android (ARM)</b> using the <a href="http://developer.android.com/sdk/ndk/index.html"><span class="ext">»</span> Android NDK</a>. |
| 363 | The environment variables need to match the install locations and the | 355 | The environment variables need to match the install locations and the |
| 364 | desired target platform. E.g. Android 2.2 corresponds to ABI level 8: | 356 | desired target platform. E.g. Android 2.2 corresponds to ABI level 8: |
| 365 | </p> | 357 | </p> |
| @@ -372,6 +364,18 @@ NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm" | |||
| 372 | make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET=arm | 364 | make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET=arm |
| 373 | </pre> | 365 | </pre> |
| 374 | <p> | 366 | <p> |
| 367 | You can cross-compile for <b id="ios">iOS 3.0+</b> (iPhone/iPad) using the <a href="http://developer.apple.com/devcenter/ios/index.action"><span class="ext">»</span> iOS SDK</a>. | ||
| 368 | The environment variables need to match the iOS SDK version: | ||
| 369 | </p> | ||
| 370 | <pre class="code"> | ||
| 371 | ISDK=/Developer/Platforms/iPhoneOS.platform/Developer | ||
| 372 | ISDKVER=iPhoneOS4.3.sdk | ||
| 373 | ISDKP=$ISDK/usr/bin/ | ||
| 374 | ISDKF="-arch armv6 -isysroot $ISDK/SDKs/$ISDKVER" | ||
| 375 | make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \ | ||
| 376 | TARGET=arm TARGET_SYS=iOS | ||
| 377 | </pre> | ||
| 378 | <p> | ||
| 375 | You can cross-compile for a <b>PPC/e500v2 target</b> on an x86 or x64 host system | 379 | You can cross-compile for a <b>PPC/e500v2 target</b> on an x86 or x64 host system |
| 376 | using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC). | 380 | using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC). |
| 377 | The <tt>CROSS</tt> prefix may vary depending on the <tt>--target</tt> | 381 | The <tt>CROSS</tt> prefix may vary depending on the <tt>--target</tt> |
| @@ -380,6 +384,14 @@ of the toolchain: | |||
| 380 | <pre class="code"> | 384 | <pre class="code"> |
| 381 | make HOST_CC="gcc -m32" CROSS=powerpc-e500v2-linux-gnuspe- TARGET=ppcspe | 385 | make HOST_CC="gcc -m32" CROSS=powerpc-e500v2-linux-gnuspe- TARGET=ppcspe |
| 382 | </pre> | 386 | </pre> |
| 387 | <p> | ||
| 388 | Whenever the <b>host OS and the target OS differ</b>, you need to specify | ||
| 389 | <tt>TARGET_SYS</tt> or you'll get assembler or linker errors. E.g. if | ||
| 390 | you're compiling on a Windows or OSX host for embedded Linux or Android, | ||
| 391 | you need to add <tt>TARGET_SYS=Linux</tt> to the examples above. For a | ||
| 392 | minimal target OS, you may need to disable the built-in allocator in | ||
| 393 | <tt>src/Makefile</tt> and use <tt>TARGET_SYS=Other</tt>. | ||
| 394 | </p> | ||
| 383 | 395 | ||
| 384 | <h2 id="embed">Embedding LuaJIT</h2> | 396 | <h2 id="embed">Embedding LuaJIT</h2> |
| 385 | <p> | 397 | <p> |
