16902e84ba0f7e35500e09149816353d41305be2eBill Wendling# LLVM LOCAL file build machinery 26902e84ba0f7e35500e09149816353d41305be2eBill Wendling# LLVM Compiler Makefile for use by buildit. 36902e84ba0f7e35500e09149816353d41305be2eBill Wendling# 46902e84ba0f7e35500e09149816353d41305be2eBill Wendling# This makefile is intended only for use with B&I buildit. For "normal" builds 56902e84ba0f7e35500e09149816353d41305be2eBill Wendling# use the conventional top-level makefile. 66902e84ba0f7e35500e09149816353d41305be2eBill Wendling# 76902e84ba0f7e35500e09149816353d41305be2eBill Wendling# You can specify TARGETS=ppc (or i386) on the buildit command line to limit the 86902e84ba0f7e35500e09149816353d41305be2eBill Wendling# build to just one target. The default is for ppc and i386. The compiler 97a2bdde0a0eebcd2125055e0eacaca040f0b766cChris Lattner# targeted at this host gets built anyway, but not installed unless it's listed 106902e84ba0f7e35500e09149816353d41305be2eBill Wendling# in TARGETS. 116902e84ba0f7e35500e09149816353d41305be2eBill Wendling 126902e84ba0f7e35500e09149816353d41305be2eBill Wendling# Include the set of standard Apple makefile definitions. 136902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifndef CoreOSMakefiles 146902e84ba0f7e35500e09149816353d41305be2eBill WendlingCoreOSMakefiles = $(MAKEFILEPATH)/CoreOS 156902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 166902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginclude $(CoreOSMakefiles)/Standard/Standard.make 176902e84ba0f7e35500e09149816353d41305be2eBill Wendling 186902e84ba0f7e35500e09149816353d41305be2eBill Wendling# Enable Apple extensions to (gnu)make. 196902e84ba0f7e35500e09149816353d41305be2eBill WendlingUSE_APPLE_PB_SUPPORT = all 206902e84ba0f7e35500e09149816353d41305be2eBill Wendling 216902e84ba0f7e35500e09149816353d41305be2eBill WendlingRC_ARCHS := ppc i386 226902e84ba0f7e35500e09149816353d41305be2eBill WendlingHOSTS = $(RC_ARCHS) 236902e84ba0f7e35500e09149816353d41305be2eBill Wendlingtargets = echo $(RC_ARCHS) 246902e84ba0f7e35500e09149816353d41305be2eBill WendlingTARGETS := $(shell $(targets)) 256902e84ba0f7e35500e09149816353d41305be2eBill Wendling 266902e84ba0f7e35500e09149816353d41305be2eBill WendlingSRCROOT = . 276902e84ba0f7e35500e09149816353d41305be2eBill Wendling 286902e84ba0f7e35500e09149816353d41305be2eBill WendlingSRC = $(shell cd $(SRCROOT) && pwd | sed s,/private,,) 296902e84ba0f7e35500e09149816353d41305be2eBill WendlingOBJROOT = $(SRC)/obj 306902e84ba0f7e35500e09149816353d41305be2eBill WendlingSYMROOT = $(OBJROOT)/../sym 316902e84ba0f7e35500e09149816353d41305be2eBill WendlingDSTROOT = $(OBJROOT)/../dst 326902e84ba0f7e35500e09149816353d41305be2eBill Wendling 336902e84ba0f7e35500e09149816353d41305be2eBill Wendling####################################################################### 346902e84ba0f7e35500e09149816353d41305be2eBill Wendling 359712f8460de12a08e8261b794af9811f5892970cBob WilsonPREFIX = /usr/local 366902e84ba0f7e35500e09149816353d41305be2eBill Wendling 3730174be37a97b8fbc395e92b5895fb8a89cc8c4eBill Wendling# Unless assertions are forced on in the GMAKE command line, disable them. 38ee6c04e24575da8c684584eb7ec3726f9f3240ffStuart Hastingsifndef ENABLE_ASSERTIONS 39fbe8eab37e554efb07f8034a975e8a55c7dd15eaBill WendlingENABLE_ASSERTIONS := no 406902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 416902e84ba0f7e35500e09149816353d41305be2eBill Wendling 42b4eae999f6064291ef1069a5d5e219189cc902a4Evan Cheng# Default is optimized build. 43b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengifeq ($(LLVM_DEBUG),1) 44b4eae999f6064291ef1069a5d5e219189cc902a4Evan ChengLLVM_OPTIMIZED := no 45b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengelse 46b4eae999f6064291ef1069a5d5e219189cc902a4Evan ChengLLVM_OPTIMIZED := yes 47b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengendif 48b4eae999f6064291ef1069a5d5e219189cc902a4Evan Cheng 49273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson# Default to do a native build, not a cross-build for an ARM host or simulator. 507d2552135d2240f95d94c4f252274f4f863a3f5dBob WilsonARM_HOSTED_BUILD := no 51273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob WilsonIOS_SIM_BUILD := no 527d2552135d2240f95d94c4f252274f4f863a3f5dBob Wilson 536902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifndef RC_ProjectSourceVersion 546902e84ba0f7e35500e09149816353d41305be2eBill WendlingRC_ProjectSourceVersion = 9999 556902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 566902e84ba0f7e35500e09149816353d41305be2eBill Wendling 576902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifndef RC_ProjectSourceSubversion 58ddb84f5c97c25e201fd53172e0f0551d30ec4f04Nick KledzikRC_ProjectSourceSubversion = 0 596902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 606902e84ba0f7e35500e09149816353d41305be2eBill Wendling 61c60141ba4345b1c8db0f518380ca84d9797eb1d9Devang Patel# NOTE : Always put version numbers at the end because they are optional. 626902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstall: $(OBJROOT) $(SYMROOT) $(DSTROOT) 636902e84ba0f7e35500e09149816353d41305be2eBill Wendling cd $(OBJROOT) && \ 644a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings $(SRC)/utils/buildit/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ 65598f4abdf4a194aec95a9a35f0dcabbb90103d38Bob Wilson $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT) \ 66d13af63df7ce87440547e9149fe55337c700328eBob Wilson $(ENABLE_ASSERTIONS) $(LLVM_OPTIMIZED) \ 67273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson $(ARM_HOSTED_BUILD) $(IOS_SIM_BUILD) \ 68598f4abdf4a194aec95a9a35f0dcabbb90103d38Bob Wilson $(RC_ProjectSourceVersion) $(RC_ProjectSourceSubversion) 696902e84ba0f7e35500e09149816353d41305be2eBill Wendling 707d2552135d2240f95d94c4f252274f4f863a3f5dBob WilsonEmbeddedHosted: 710ab754b25ae3fb1a9ebd09585c70084f9400f69dBob Wilson $(MAKE) ARM_HOSTED_BUILD=yes PREFIX=/usr/local install 727d2552135d2240f95d94c4f252274f4f863a3f5dBob Wilson 73273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson# When building for the iOS simulator, MACOSX_DEPLOYMENT_TARGET is not set 74273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson# by default, but it needs to be set when building tools that run on the host 75273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson# (e.g., tblgen), so set it here. 76273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob WilsonEmbeddedSim: 77273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson export MACOSX_DEPLOYMENT_TARGET=`sw_vers -productVersion`; \ 780ab754b25ae3fb1a9ebd09585c70084f9400f69dBob Wilson $(MAKE) IOS_SIM_BUILD=yes PREFIX=$(SDKROOT)/usr/local install 79273e48b53b0a44629eb90b2c5f029adbb4c20f77Bob Wilson 80005c51ddc713591a8f461f55f8c844e680a65a90Bob WilsonEmbedded: 81005c51ddc713591a8f461f55f8c844e680a65a90Bob Wilson ARM_PLATFORM=`xcodebuild -version -sdk iphoneos PlatformPath` && \ 82a348fecf2fab7bf075b1dfcd02dfa36d16df7659Bob Wilson $(MAKE) DSTROOT=$(DSTROOT)$$ARM_PLATFORM/Developer install 83005c51ddc713591a8f461f55f8c844e680a65a90Bob Wilson 846902e84ba0f7e35500e09149816353d41305be2eBill Wendling# installhdrs does nothing, because the headers aren't useful until 856902e84ba0f7e35500e09149816353d41305be2eBill Wendling# the compiler is installed. 866902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstallhdrs: 876902e84ba0f7e35500e09149816353d41305be2eBill Wendling 886902e84ba0f7e35500e09149816353d41305be2eBill Wendling# We build and install in one shell script. 896902e84ba0f7e35500e09149816353d41305be2eBill Wendlingbuild: 906902e84ba0f7e35500e09149816353d41305be2eBill Wendling 916902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstallsrc: 926902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 936902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++++++++++++ 946902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo + Installing sources + 956902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++++++++++++ 966902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 976902e84ba0f7e35500e09149816353d41305be2eBill Wendling if [ $(SRCROOT) != . ]; then \ 986902e84ba0f7e35500e09149816353d41305be2eBill Wendling $(PAX) -rw . $(SRCROOT); \ 996902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1006902e84ba0f7e35500e09149816353d41305be2eBill Wendling find -d "$(SRCROOT)" \( -type d -a -name .svn -o \ 1016902e84ba0f7e35500e09149816353d41305be2eBill Wendling -type f -a -name .DS_Store -o \ 1026902e84ba0f7e35500e09149816353d41305be2eBill Wendling -name \*~ -o -name .\#\* \) \ 1036902e84ba0f7e35500e09149816353d41305be2eBill Wendling -exec rm -rf {} \; 1048464f072350d7f8fc12180f0f2071fe2d08c928dBill Wendling rm -rf "$(SRCROOT)/test" 1056902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1066902e84ba0f7e35500e09149816353d41305be2eBill Wendling####################################################################### 1076902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1086902e84ba0f7e35500e09149816353d41305be2eBill Wendlingclean: 1096902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 1106902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++ 1116902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo + Cleaning + 1126902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++ 1136902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 1146902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(OBJROOT) -a "$(OBJROOT)" != / ]; then \ 1156902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(OBJROOT); \ 1166902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(OBJROOT); \ 1176902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1186902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(SYMROOT) -a "$(SYMROOT)" != / ]; then \ 1196902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(SYMROOT); \ 1206902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(SYMROOT); \ 1216902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1226902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(DSTROOT) -a "$(DSTROOT)" != / ]; then \ 1236902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(DSTROOT); \ 1246902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(DSTROOT); \ 1256902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1266902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1276902e84ba0f7e35500e09149816353d41305be2eBill Wendling####################################################################### 1286902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1296902e84ba0f7e35500e09149816353d41305be2eBill Wendling$(OBJROOT) $(SYMROOT) $(DSTROOT): 1306902e84ba0f7e35500e09149816353d41305be2eBill Wendling mkdir -p $@ 1316902e84ba0f7e35500e09149816353d41305be2eBill Wendling 132005c51ddc713591a8f461f55f8c844e680a65a90Bob Wilson.PHONY: install installsrc clean EmbeddedHosted EmbeddedSim Embedded 133