mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 23:44:08 +00:00
On Mac OS switch default compiler from gcc to clang. XCode has been shipping with clang since XCode 5.0 released in September 2013.
Change iOS cross compilation instructions to rely on `xcrun` to locate compiler instead of hard-coding the path and SDK version. Provide instructions for cross-compilation to ARM64. Fixes issue #1. Fixes issue #4.
This commit is contained in:
parent
52ea1a30af
commit
a320f1a082
@ -453,13 +453,18 @@ much slower than the JIT compiler. Please complain to Apple, not me.
|
||||
Or use Android. :-p
|
||||
</p>
|
||||
<pre class="code">
|
||||
IXCODE=`xcode-select -print-path`
|
||||
ISDK=$IXCODE/Platforms/iPhoneOS.platform/Developer
|
||||
ISDKVER=iPhoneOS6.0.sdk
|
||||
ISDKP=$ISDK/usr/bin/
|
||||
ISDKF="-arch armv7 -isysroot $ISDK/SDKs/$ISDKVER"
|
||||
make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \
|
||||
TARGET_SYS=iOS
|
||||
# Cross-compile for a 32bit ARM.
|
||||
ISDKP=`xcrun --sdk iphoneos --show-sdk-path`
|
||||
ICC=`xcrun --sdk iphoneos --find clang`
|
||||
ISDKF="-arch armv7 -isysroot $ISDKP"
|
||||
make HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" \
|
||||
TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
|
||||
|
||||
# Cross-compile for an ARM64.
|
||||
ISDKP=`xcrun --sdk iphoneos --show-sdk-path`
|
||||
ICC=`xcrun --sdk iphoneos --find clang`
|
||||
ISDKF="-arch arm64 -isysroot $ISDKP"
|
||||
make CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
|
||||
</pre>
|
||||
|
||||
<h3 id="consoles">Cross-compiling for consoles</h3>
|
||||
|
48
src/Makefile
48
src/Makefile
@ -16,6 +16,33 @@ RELVER= 0
|
||||
ABIVER= 5.1
|
||||
NODOTABIVER= 51
|
||||
|
||||
##############################################################################
|
||||
################################ HOST SYSTEM ###############################
|
||||
##############################################################################
|
||||
|
||||
ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM))
|
||||
HOST_SYS= Windows
|
||||
HOST_RM= del
|
||||
else
|
||||
HOST_SYS:= $(shell uname -s)
|
||||
ifneq (,$(findstring MINGW,$(HOST_SYS)))
|
||||
HOST_SYS= Windows
|
||||
HOST_MSYS= mingw
|
||||
endif
|
||||
ifneq (,$(findstring CYGWIN,$(HOST_SYS)))
|
||||
HOST_SYS= Windows
|
||||
HOST_MSYS= cygwin
|
||||
endif
|
||||
endif
|
||||
|
||||
# We default to GCC on all platforms except Mac OS where the default compiler is
|
||||
# clang starting with XCode 5.0.
|
||||
ifneq (Darwin,$(HOST_SYS))
|
||||
DEFAULT_CC= gcc
|
||||
else
|
||||
DEFAULT_CC= clang
|
||||
endif
|
||||
|
||||
##############################################################################
|
||||
############################# COMPILER OPTIONS #############################
|
||||
##############################################################################
|
||||
@ -25,10 +52,10 @@ NODOTABIVER= 51
|
||||
# with "make clean", followed by "make" if you change any options.
|
||||
#
|
||||
# LuaJIT builds as a native 32 or 64 bit binary by default.
|
||||
CC= gcc
|
||||
CC= $(DEFAULT_CC)
|
||||
#
|
||||
# Use this if you want to force a 32 bit build on a 64 bit multilib OS.
|
||||
#CC= gcc -m32
|
||||
# CC= $(DEFAULT_CC) -m32
|
||||
#
|
||||
# Since the assembler part does NOT maintain a frame pointer, it's pointless
|
||||
# to slow down the C part by not omitting it. Debugging, tracebacks and
|
||||
@ -268,24 +295,9 @@ ifneq (,$(LMULTILIB))
|
||||
endif
|
||||
|
||||
##############################################################################
|
||||
# System detection.
|
||||
# Target system features.
|
||||
##############################################################################
|
||||
|
||||
ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM))
|
||||
HOST_SYS= Windows
|
||||
HOST_RM= del
|
||||
else
|
||||
HOST_SYS:= $(shell uname -s)
|
||||
ifneq (,$(findstring MINGW,$(HOST_SYS)))
|
||||
HOST_SYS= Windows
|
||||
HOST_MSYS= mingw
|
||||
endif
|
||||
ifneq (,$(findstring CYGWIN,$(HOST_SYS)))
|
||||
HOST_SYS= Windows
|
||||
HOST_MSYS= cygwin
|
||||
endif
|
||||
endif
|
||||
|
||||
TARGET_SYS?= $(HOST_SYS)
|
||||
ifeq (Windows,$(TARGET_SYS))
|
||||
TARGET_STRIP+= --strip-unneeded
|
||||
|
Loading…
Reference in New Issue
Block a user