aboutsummaryrefslogtreecommitdiff
path: root/make/AppleBI.mk
diff options
context:
space:
mode:
Diffstat (limited to 'make/AppleBI.mk')
-rw-r--r--make/AppleBI.mk84
1 files changed, 84 insertions, 0 deletions
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
new file mode 100644
index 000000000000..8cbce5fbaf56
--- /dev/null
+++ b/make/AppleBI.mk
@@ -0,0 +1,84 @@
+
+#
+# Make rules to build compiler_rt in Apple B&I infrastructure
+#
+
+# set ProjSrcRoot appropriately
+ProjSrcRoot := $(SRCROOT)
+# set ProjObjRoot appropriately
+ifdef OBJROOT
+ ProjObjRoot := $(OBJROOT)
+else
+ ProjObjRoot := $(ProjSrcRoot)
+endif
+
+ifeq (,$(SDKROOT))
+ INSTALL_TARGET = install-MacOSX
+else
+ INSTALL_TARGET = install-iOS
+endif
+
+
+# Log full compile lines in B&I logs and omit summary lines.
+Verb :=
+Summary := @true
+
+# List of functions needed for each architecture.
+
+# Copies any public headers to DSTROOT.
+installhdrs:
+
+
+# Copies source code to SRCROOT.
+installsrc:
+ cp -r . $(SRCROOT)
+
+
+install: $(INSTALL_TARGET)
+
+# Copy results to DSTROOT.
+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
+ cd $(DSTROOT)/usr/lib/system; \
+ ln -s libcompiler_rt.dylib libcompiler_rt_profile.dylib; \
+ ln -s libcompiler_rt.dylib libcompiler_rt_debug.dylib
+
+# Rule to make each dylib slice
+$(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
+ echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c
+ cc $(OBJROOT)/version.c -arch $* -dynamiclib \
+ -install_name /usr/lib/system/libcompiler_rt.dylib \
+ -compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \
+ -nodefaultlibs -lSystem -umbrella System -dead_strip \
+ -Wl,-force_load,$^ -o $@
+
+# Rule to make fat dylib
+$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
+ $(OBJROOT)/libcompiler_rt-$(arch).dylib)
+ lipo -create $^ -o $@
+
+
+
+
+# Copy results to DSTROOT.
+install-iOS: $(SYMROOT)/libcompiler_rt.a $(SYMROOT)/libcompiler_rt-static.a
+ mkdir -p $(DSTROOT)/usr/local/lib/libgcc
+ cp $(SYMROOT)/libcompiler_rt.a \
+ $(DSTROOT)/usr/local/lib/libgcc/libcompiler_rt.a
+ mkdir -p $(DSTROOT)/usr/local/
+ cp $(SYMROOT)/libcompiler_rt-static.a \
+ $(DSTROOT)/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 $@
+