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> |