GNUmakefile revision 4a53e1ef9d137af590425f77f02a4e974f370656
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 96902e84ba0f7e35500e09149816353d41305be2eBill Wendling# targetted 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 356902e84ba0f7e35500e09149816353d41305be2eBill WendlingPREFIX = /usr/local 366902e84ba0f7e35500e09149816353d41305be2eBill Wendling 376902e84ba0f7e35500e09149816353d41305be2eBill Wendling# Unless assertions are forced on in the GMAKE command line, disable them. 386902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifdef ENABLE_ASSERTIONS 396902e84ba0f7e35500e09149816353d41305be2eBill WendlingLLVM_ASSERTIONS := yes 406902e84ba0f7e35500e09149816353d41305be2eBill Wendlingelse 416902e84ba0f7e35500e09149816353d41305be2eBill WendlingLLVM_ASSERTIONS := no 426902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 436902e84ba0f7e35500e09149816353d41305be2eBill Wendling 44b4eae999f6064291ef1069a5d5e219189cc902a4Evan Cheng# Default is optimized build. 45b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengifeq ($(LLVM_DEBUG),1) 46b4eae999f6064291ef1069a5d5e219189cc902a4Evan ChengLLVM_OPTIMIZED := no 47b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengelse 48b4eae999f6064291ef1069a5d5e219189cc902a4Evan ChengLLVM_OPTIMIZED := yes 49b4eae999f6064291ef1069a5d5e219189cc902a4Evan Chengendif 50b4eae999f6064291ef1069a5d5e219189cc902a4Evan Cheng 516902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifndef RC_ProjectSourceVersion 526902e84ba0f7e35500e09149816353d41305be2eBill WendlingRC_ProjectSourceVersion = 9999 536902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 546902e84ba0f7e35500e09149816353d41305be2eBill Wendling 556902e84ba0f7e35500e09149816353d41305be2eBill Wendlingifndef RC_ProjectSourceSubversion 56ddb84f5c97c25e201fd53172e0f0551d30ec4f04Nick KledzikRC_ProjectSourceSubversion = 0 576902e84ba0f7e35500e09149816353d41305be2eBill Wendlingendif 586902e84ba0f7e35500e09149816353d41305be2eBill Wendling 59c60141ba4345b1c8db0f518380ca84d9797eb1d9Devang Patel# NOTE : Always put version numbers at the end because they are optional. 606902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstall: $(OBJROOT) $(SYMROOT) $(DSTROOT) 616902e84ba0f7e35500e09149816353d41305be2eBill Wendling cd $(OBJROOT) && \ 624a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings $(SRC)/utils/buildit/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ 636902e84ba0f7e35500e09149816353d41305be2eBill Wendling $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT) \ 64c60141ba4345b1c8db0f518380ca84d9797eb1d9Devang Patel $(LLVM_ASSERTIONS) $(LLVM_OPTIMIZED) \ 65c60141ba4345b1c8db0f518380ca84d9797eb1d9Devang Patel $(RC_ProjectSourceVersion) $(RC_ProjectSourceSubversion) 66c60141ba4345b1c8db0f518380ca84d9797eb1d9Devang Patel 676902e84ba0f7e35500e09149816353d41305be2eBill Wendling 686902e84ba0f7e35500e09149816353d41305be2eBill Wendling# installhdrs does nothing, because the headers aren't useful until 696902e84ba0f7e35500e09149816353d41305be2eBill Wendling# the compiler is installed. 706902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstallhdrs: 716902e84ba0f7e35500e09149816353d41305be2eBill Wendling 726902e84ba0f7e35500e09149816353d41305be2eBill Wendling# We build and install in one shell script. 736902e84ba0f7e35500e09149816353d41305be2eBill Wendlingbuild: 746902e84ba0f7e35500e09149816353d41305be2eBill Wendling 756902e84ba0f7e35500e09149816353d41305be2eBill Wendlinginstallsrc: 766902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 776902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++++++++++++ 786902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo + Installing sources + 796902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++++++++++++ 806902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 816902e84ba0f7e35500e09149816353d41305be2eBill Wendling if [ $(SRCROOT) != . ]; then \ 826902e84ba0f7e35500e09149816353d41305be2eBill Wendling $(PAX) -rw . $(SRCROOT); \ 836902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 846902e84ba0f7e35500e09149816353d41305be2eBill Wendling find -d "$(SRCROOT)" \( -type d -a -name .svn -o \ 856902e84ba0f7e35500e09149816353d41305be2eBill Wendling -type f -a -name .DS_Store -o \ 866902e84ba0f7e35500e09149816353d41305be2eBill Wendling -name \*~ -o -name .\#\* \) \ 876902e84ba0f7e35500e09149816353d41305be2eBill Wendling -exec rm -rf {} \; 888464f072350d7f8fc12180f0f2071fe2d08c928dBill Wendling rm -rf "$(SRCROOT)/test" 896902e84ba0f7e35500e09149816353d41305be2eBill Wendling 906902e84ba0f7e35500e09149816353d41305be2eBill Wendling####################################################################### 916902e84ba0f7e35500e09149816353d41305be2eBill Wendling 926902e84ba0f7e35500e09149816353d41305be2eBill Wendlingclean: 936902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 946902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++ 956902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo + Cleaning + 966902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo ++++++++++++ 976902e84ba0f7e35500e09149816353d41305be2eBill Wendling @echo 986902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(OBJROOT) -a "$(OBJROOT)" != / ]; then \ 996902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(OBJROOT); \ 1006902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(OBJROOT); \ 1016902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1026902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(SYMROOT) -a "$(SYMROOT)" != / ]; then \ 1036902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(SYMROOT); \ 1046902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(SYMROOT); \ 1056902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1066902e84ba0f7e35500e09149816353d41305be2eBill Wendling @if [ -d $(DSTROOT) -a "$(DSTROOT)" != / ]; then \ 1076902e84ba0f7e35500e09149816353d41305be2eBill Wendling echo '*** DELETING ' $(DSTROOT); \ 1086902e84ba0f7e35500e09149816353d41305be2eBill Wendling rm -rf $(DSTROOT); \ 1096902e84ba0f7e35500e09149816353d41305be2eBill Wendling fi 1106902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1116902e84ba0f7e35500e09149816353d41305be2eBill Wendling####################################################################### 1126902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1136902e84ba0f7e35500e09149816353d41305be2eBill Wendling$(OBJROOT) $(SYMROOT) $(DSTROOT): 1146902e84ba0f7e35500e09149816353d41305be2eBill Wendling mkdir -p $@ 1156902e84ba0f7e35500e09149816353d41305be2eBill Wendling 1166902e84ba0f7e35500e09149816353d41305be2eBill Wendling.PHONY: install installsrc clean 117