blob: 66a9036e0cf9fed8fba24975e612c02dbe41c3a9 [file] [log] [blame]
Daniel Dunbarb3a69012009-06-26 16:47:03 +00001
2#
3# Make rules to build compiler_rt in Apple B&I infrastructure
4#
5
6# set ProjSrcRoot appropriately
7ProjSrcRoot := $(SRCROOT)
8# set ProjObjRoot appropriately
9ifdef OBJROOT
10 ProjObjRoot := $(OBJROOT)
11else
12 ProjObjRoot := $(ProjSrcRoot)
13endif
14
Daniel Dunbar557a6ea2010-01-13 16:13:01 +000015# Log full compile lines in B&I logs and omit summary lines.
16Verb :=
Daniel Dunbarb3a69012009-06-26 16:47:03 +000017Summary := @true
18
Daniel Dunbar557a6ea2010-01-13 16:13:01 +000019# List of functions needed for each architecture.
Daniel Dunbarb3a69012009-06-26 16:47:03 +000020
Daniel Dunbar557a6ea2010-01-13 16:13:01 +000021# Copies any public headers to DSTROOT.
Daniel Dunbarb3a69012009-06-26 16:47:03 +000022installhdrs:
23
24
Daniel Dunbar557a6ea2010-01-13 16:13:01 +000025# Copies source code to SRCROOT.
Daniel Dunbarb3a69012009-06-26 16:47:03 +000026installsrc:
Daniel Dunbar3c2a7762010-01-18 06:49:42 +000027 cp -r . $(SRCROOT)
Daniel Dunbarb3a69012009-06-26 16:47:03 +000028
29
Daniel Dunbar557a6ea2010-01-13 16:13:01 +000030# Copy results to DSTROOT.
Nick Kledzik1f7ee1d2010-03-31 20:38:57 +000031install: $(SYMROOT)/libcompiler_rt.dylib
32 mkdir -p $(DSTROOT)/usr/lib/system
33 strip -S $(SYMROOT)/libcompiler_rt.dylib \
34 -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
35 cd $(DSTROOT)/usr/lib/system; \
36 ln -s libcompiler_rt.dylib libcompiler_rt_profile.dylib; \
37 ln -s libcompiler_rt.dylib libcompiler_rt_debug.dylib
Daniel Dunbarb3a69012009-06-26 16:47:03 +000038
Nick Kledzik1f7ee1d2010-03-31 20:38:57 +000039# Rule to make each dylib slice
40$(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
41 echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c
42 cc $(OBJROOT)/version.c -arch $* -dynamiclib \
43 -install_name /usr/lib/system/libcompiler_rt.dylib \
44 -compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \
45 -nodefaultlibs -lSystem -umbrella System -dead_strip \
46 -Wl,-force_load,$^ -o $@
Daniel Dunbarb3a69012009-06-26 16:47:03 +000047
Nick Kledzik1f7ee1d2010-03-31 20:38:57 +000048# Rule to make fat dylib
49$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
50 $(OBJROOT)/libcompiler_rt-$(arch).dylib)
Daniel Dunbar3c2a7762010-01-18 06:49:42 +000051 lipo -create $^ -o $@
Daniel Dunbarb3a69012009-06-26 16:47:03 +000052