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