summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2010-04-21 22:46:53 +0000
committerNick Kledzik <kledzik@apple.com>2010-04-21 22:46:53 +0000
commitafb7b6e421785106a7e13e13c2a5320e3f1d9bd3 (patch)
tree919a72712b239958904602d99f7f69327b7882c6 /make
parentd016b38b065fbe3e22584728c3b8bc55fc8a5f9c (diff)
improve arm build support on darwin
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@102032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'make')
-rw-r--r--make/AppleBI.mk36
-rw-r--r--make/platform/darwin_bni.mk24
2 files changed, 53 insertions, 7 deletions
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
index 66a9036e0..7d2ad9e5e 100644
--- a/make/AppleBI.mk
+++ b/make/AppleBI.mk
@@ -12,6 +12,13 @@ else
ProjObjRoot := $(ProjSrcRoot)
endif
+ifeq (,$(SDKROOT))
+ INSTALL_TARGET = install-MacOSX
+else
+ INSTALL_TARGET = install-iPhoneOS
+endif
+
+
# Log full compile lines in B&I logs and omit summary lines.
Verb :=
Summary := @true
@@ -27,8 +34,10 @@ installsrc:
cp -r . $(SRCROOT)
+install: $(INSTALL_TARGET)
+
# Copy results to DSTROOT.
-install: $(SYMROOT)/libcompiler_rt.dylib
+install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib
mkdir -p $(DSTROOT)/usr/lib/system
strip -S $(SYMROOT)/libcompiler_rt.dylib \
-o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
@@ -47,6 +56,29 @@ $(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_
# Rule to make fat dylib
$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
- $(OBJROOT)/libcompiler_rt-$(arch).dylib)
+ $(OBJROOT)/libcompiler_rt-$(arch).dylib)
+ lipo -create $^ -o $@
+
+
+
+
+# Copy results to DSTROOT.
+install-iPhoneOS: $(SYMROOT)/libcompiler_rt.a $(SYMROOT)/libcompiler_rt-static.a
+ mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/lib/libgcc
+ cp $(SYMROOT)/libcompiler_rt.a \
+ $(DSTROOT)/$(SDKROOT)/usr/local/lib/libgcc/libcompiler_rt.a
+ mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/
+ cp $(SYMROOT)/libcompiler_rt-static.a \
+ $(DSTROOT)/$(SDKROOT)/usr/local/lib/libcompiler_rt-static.a
+
+
+# Rule to make fat archive
+$(SYMROOT)/libcompiler_rt.a : $(foreach arch,$(RC_ARCHS), \
+ $(OBJROOT)/darwin_bni/Release/$(arch)/libcompiler_rt.a)
+ lipo -create $^ -o $@
+
+# Rule to make fat archive
+$(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \
+ $(OBJROOT)/darwin_bni/Static/$(arch)/libcompiler_rt.a)
lipo -create $^ -o $@
diff --git a/make/platform/darwin_bni.mk b/make/platform/darwin_bni.mk
index 74698a194..202ab7e43 100644
--- a/make/platform/darwin_bni.mk
+++ b/make/platform/darwin_bni.mk
@@ -1,7 +1,7 @@
Description := Target for Darwin using an Apple-style build.
-Configs := Debug Release Profile
+Configs := Debug Release Profile Static
# We override this with RC_ARCHS because B&I may want to build on an ARCH we
# haven't explicitly defined support for. If all goes well, this will just work
@@ -10,6 +10,10 @@ UniversalArchs := $(RC_ARCHS)
CFLAGS := -Wall -Os -fomit-frame-pointer -g
+CFLAGS.Static := $(CFLAGS) -static
+
+VISIBILITY_HIDDEN := 0
+VISIBILITY_HIDDEN.Static := 1
FUNCTIONS := absvdi2 absvsi2 addvdi3 addvsi3 ashldi3 ashrdi3 \
@@ -53,8 +57,18 @@ FUNCTIONS.armv6 := $(FUNCTIONS) \
nedf2vfp negdf2vfp negsf2vfp nesf2vfp \
subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
modsi3 umodsi3 udivsi3 divsi3 \
- switch8 switchu8 switch16 switch32 \
- restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
- sync_synchronize
+ switch8 switchu8 switch16 switch32 \
+ restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
+ sync_synchronize
+FUNCTIONS.armv7 := $(FUNCTIONS) \
+ adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
+ divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \
+ fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \
+ floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \
+ gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \
+ ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \
+ muldf3vfp mulsf3vfp \
+ nedf2vfp negdf2vfp negsf2vfp nesf2vfp \
+ subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
+ modsi3 umodsi3 udivsi3 divsi3
-VISIBILITY_HIDDEN := 0