1b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 2b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# 3b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# Make rules to build compiler_rt in Apple B&I infrastructure 4b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# 5b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 6b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# set ProjSrcRoot appropriately 7b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarProjSrcRoot := $(SRCROOT) 8b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar# set ProjObjRoot appropriately 9b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarifdef OBJROOT 10b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar ProjObjRoot := $(OBJROOT) 11b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarelse 12b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar ProjObjRoot := $(ProjSrcRoot) 13b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarendif 14b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 15f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilsonifeq (,$(RC_PURPLE)) 16afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik INSTALL_TARGET = install-MacOSX 17afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzikelse 18f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson ifeq (,$(RC_INDIGO)) 19f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson INSTALL_TARGET = install-iOS 20f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson else 21f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson INSTALL_TARGET = install-iOS-Simulator 22f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson endif 23afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzikendif 24afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 25afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 269435c40640a531a49e6b43850b431f20061f225cNick Kledzik 27557a6eace292091d14419a334e8d62d9ec9e772bDaniel Dunbar# Log full compile lines in B&I logs and omit summary lines. 28557a6eace292091d14419a334e8d62d9ec9e772bDaniel DunbarVerb := 29b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel DunbarSummary := @true 30b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 31557a6eace292091d14419a334e8d62d9ec9e772bDaniel Dunbar# List of functions needed for each architecture. 32b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 33557a6eace292091d14419a334e8d62d9ec9e772bDaniel Dunbar# Copies any public headers to DSTROOT. 34b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarinstallhdrs: 35b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 36b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 37557a6eace292091d14419a334e8d62d9ec9e772bDaniel Dunbar# Copies source code to SRCROOT. 38b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarinstallsrc: 393c2a776b59f0c349b7ba8ec716266e6691f9df6fDaniel Dunbar cp -r . $(SRCROOT) 40b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 41b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 42afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzikinstall: $(INSTALL_TARGET) 43afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 44557a6eace292091d14419a334e8d62d9ec9e772bDaniel Dunbar# Copy results to DSTROOT. 457956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzikinstall-MacOSX : $(SYMROOT)/libcompiler_rt.dylib \ 467956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik $(SYMROOT)/libcompiler_rt-dyld.a 477956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik mkdir -p $(DSTROOT)/usr/local/lib/dyld 487956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik cp $(SYMROOT)/libcompiler_rt-dyld.a \ 497956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik $(DSTROOT)/usr/local/lib/dyld/libcompiler_rt.a 501f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik mkdir -p $(DSTROOT)/usr/lib/system 519435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,STRIP,Platform.darwin_bni,Release,) -S $(SYMROOT)/libcompiler_rt.dylib \ 521f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib 531f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik cd $(DSTROOT)/usr/lib/system; \ 541f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik ln -s libcompiler_rt.dylib libcompiler_rt_profile.dylib; \ 551f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik ln -s libcompiler_rt.dylib libcompiler_rt_debug.dylib 561f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik 571f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik# Rule to make each dylib slice 581f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik$(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a 591f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c 609435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,CC,Platform.darwin_bni,Release,$*) \ 619435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(OBJROOT)/version.c -arch $* -dynamiclib \ 621f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik -install_name /usr/lib/system/libcompiler_rt.dylib \ 631f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik -compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \ 64ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -nodefaultlibs -umbrella System -dead_strip \ 65ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -Wl,-upward-lunwind \ 66ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -Wl,-upward-lsystem_m \ 67ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -Wl,-upward-lsystem_c \ 68f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-upward-lsystem_kernel \ 69e04a1fdc5d173586408421144a0cd79d1767f918Nick Kledzik -Wl,-upward-lsystem_platform \ 70ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -Wl,-ldyld \ 71ef3667a97978c037684f604118a5b9eaf68ee231Nick Kledzik -L$(SDKROOT)/usr/lib/system \ 729435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(DYLIB_FLAGS) -Wl,-force_load,$^ -o $@ 731f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik 741f7ee1d663fc2c0f8760e5b78b1e5212b639964dNick Kledzik# Rule to make fat dylib 75a11b52f4527d2b3f0a9ac10c9aa7a67aa1ff8272Nick Kledzik$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(filter-out armv4t,$(RC_ARCHS)), \ 76afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik $(OBJROOT)/libcompiler_rt-$(arch).dylib) 779435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@ 78c0973d683aca4dad4cefbb23bb0134f01f804016Nick Kledzik $(call GetCNAVar,DSYMUTIL,Platform.darwin_bni,Release,) $@ 79afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 80afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 81afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik# Copy results to DSTROOT. 823d40740383d6b80ab071b0f645b80f533c9bd55dNick Kledzikinstall-iOS: $(SYMROOT)/libcompiler_rt-static.a \ 837956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik $(SYMROOT)/libcompiler_rt-dyld.a \ 843d40740383d6b80ab071b0f645b80f533c9bd55dNick Kledzik $(SYMROOT)/libcompiler_rt.dylib 853d40740383d6b80ab071b0f645b80f533c9bd55dNick Kledzik mkdir -p $(DSTROOT)/usr/local/lib 86afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik cp $(SYMROOT)/libcompiler_rt-static.a \ 87dc0b559909e05c7296de455393657b2b62eee11bNick Kledzik $(DSTROOT)/usr/local/lib/libcompiler_rt-static.a 887956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik mkdir -p $(DSTROOT)/usr/local/lib/dyld 897956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik cp $(SYMROOT)/libcompiler_rt-dyld.a \ 907956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik $(DSTROOT)/usr/local/lib/dyld/libcompiler_rt.a 913d40740383d6b80ab071b0f645b80f533c9bd55dNick Kledzik mkdir -p $(DSTROOT)/usr/lib/system 929435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,STRIP,Platform.darwin_bni,Release,) -S $(SYMROOT)/libcompiler_rt.dylib \ 933d40740383d6b80ab071b0f645b80f533c9bd55dNick Kledzik -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib 94afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik 95afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik# Rule to make fat archive 96afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik$(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \ 97afb7b6e421785106a7e13e13c2a5320e3f1d9bd3Nick Kledzik $(OBJROOT)/darwin_bni/Static/$(arch)/libcompiler_rt.a) 989435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@ 99b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 1009435c40640a531a49e6b43850b431f20061f225cNick Kledzik# rule to make each archive slice for dyld (which removes a few archive members) 1017956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik$(OBJROOT)/libcompiler_rt-dyld-%.a : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a 1027956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik cp $^ $@ 1039435c40640a531a49e6b43850b431f20061f225cNick Kledzik DEL_LIST=`$(AR) -t $@ | egrep 'apple_versioning|gcc_personality_v0|eprintf' | xargs echo` ; \ 1049435c40640a531a49e6b43850b431f20061f225cNick Kledzik if [ -n "$${DEL_LIST}" ] ; \ 1059435c40640a531a49e6b43850b431f20061f225cNick Kledzik then \ 1069435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,AR,Platform.darwin_bni,Release,) -d $@ $${DEL_LIST}; \ 1079435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,RANLIB,Platform.darwin_bni,Release,) $@ ; \ 1089435c40640a531a49e6b43850b431f20061f225cNick Kledzik fi 1097956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik 1107956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik# rule to make make archive for dyld 1117956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik$(SYMROOT)/libcompiler_rt-dyld.a : $(foreach arch,$(RC_ARCHS), \ 1127956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik $(OBJROOT)/libcompiler_rt-dyld-$(arch).a) 1139435c40640a531a49e6b43850b431f20061f225cNick Kledzik $(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@ 1147956ca95b55c421c99cc97932ad8f4dc5eb0e377Nick Kledzik 115f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson 116f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson 117f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson# Copy results to DSTROOT. 118f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilsoninstall-iOS-Simulator: $(SYMROOT)/libcompiler_rt_sim.dylib \ 119f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(SYMROOT)/libcompiler_rt-dyld.a 120f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson mkdir -p $(DSTROOT)/$(SDKROOT)/usr/lib/system 121f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(call GetCNAVar,STRIP,Platform.darwin_bni,Release,) -S $(SYMROOT)/libcompiler_rt_sim.dylib \ 122f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -o $(DSTROOT)/$(SDKROOT)/usr/lib/system/libcompiler_rt_sim.dylib 123f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/lib/dyld 124f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson cp $(SYMROOT)/libcompiler_rt-dyld.a \ 125f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(DSTROOT)/$(SDKROOT)/usr/local/lib/dyld/libcompiler_rt.a 126f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson 127f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson# Rule to make fat dylib 128f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson$(SYMROOT)/libcompiler_rt_sim.dylib: $(foreach arch,$(RC_ARCHS), \ 129f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(OBJROOT)/libcompiler_rt_sim-$(arch).dylib) 130f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@ 131f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(call GetCNAVar,DSYMUTIL,Platform.darwin_bni,Release,) $@ 132f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson 133f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson# Rule to make each dylib slice 134f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson$(OBJROOT)/libcompiler_rt_sim-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a 135f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c 136f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(call GetCNAVar,CC,Platform.darwin_bni,Release,$*) \ 137f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(OBJROOT)/version.c -arch $* -dynamiclib \ 138f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -install_name /usr/lib/system/libcompiler_rt_sim.dylib \ 139f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \ 140f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-unexported_symbol,___enable_execute_stack \ 141f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -nostdlib \ 142f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-upward-lunwind_sim \ 143f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-upward-lsystem_sim_m \ 144f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-upward-lsystem_sim_c \ 145f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -ldyld_sim \ 146f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -Wl,-upward-lSystem \ 147f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson -umbrella System -Wl,-no_implicit_dylibs -L$(SDKROOT)/usr/lib/system -dead_strip \ 148f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson $(DYLIB_FLAGS) -Wl,-force_load,$^ -o $@ 149f7e6f383d9c661ccbcd986fc1478336f57f4ce7cBob Wilson 150