Bill Wendling | ce6822a | 2007-11-09 06:59:33 +0000 | [diff] [blame] | 1 | # LLVM LOCAL file build machinery |
| 2 | # LLVM Compiler Makefile for use by buildit. |
| 3 | # |
| 4 | # This makefile is intended only for use with B&I buildit. For "normal" builds |
| 5 | # use the conventional top-level makefile. |
| 6 | # |
| 7 | # You can specify TARGETS=ppc (or i386) on the buildit command line to limit the |
| 8 | # build to just one target. The default is for ppc and i386. The compiler |
| 9 | # targetted at this host gets built anyway, but not installed unless it's listed |
| 10 | # in TARGETS. |
| 11 | |
| 12 | # Include the set of standard Apple makefile definitions. |
| 13 | ifndef CoreOSMakefiles |
| 14 | CoreOSMakefiles = $(MAKEFILEPATH)/CoreOS |
| 15 | endif |
| 16 | include $(CoreOSMakefiles)/Standard/Standard.make |
| 17 | |
| 18 | # Enable Apple extensions to (gnu)make. |
| 19 | USE_APPLE_PB_SUPPORT = all |
| 20 | |
| 21 | RC_ARCHS := ppc i386 |
| 22 | HOSTS = $(RC_ARCHS) |
| 23 | targets = echo $(RC_ARCHS) |
| 24 | TARGETS := $(shell $(targets)) |
| 25 | |
| 26 | SRCROOT = . |
| 27 | |
| 28 | SRC = $(shell cd $(SRCROOT) && pwd | sed s,/private,,) |
| 29 | OBJROOT = $(SRC)/obj |
| 30 | SYMROOT = $(OBJROOT)/../sym |
| 31 | DSTROOT = $(OBJROOT)/../dst |
| 32 | |
| 33 | ####################################################################### |
| 34 | |
| 35 | PREFIX = /usr/local |
| 36 | |
| 37 | # Unless assertions are forced on in the GMAKE command line, disable them. |
| 38 | ifdef ENABLE_ASSERTIONS |
| 39 | LLVM_ASSERTIONS := yes |
| 40 | else |
| 41 | LLVM_ASSERTIONS := no |
| 42 | endif |
| 43 | |
Evan Cheng | 1a7fdae | 2008-01-18 21:01:00 +0000 | [diff] [blame] | 44 | # Default is optimized build. |
| 45 | ifeq ($(LLVM_DEBUG),1) |
| 46 | LLVM_OPTIMIZED := no |
| 47 | else |
| 48 | LLVM_OPTIMIZED := yes |
| 49 | endif |
| 50 | |
Bill Wendling | ce6822a | 2007-11-09 06:59:33 +0000 | [diff] [blame] | 51 | ifndef RC_ProjectSourceVersion |
| 52 | RC_ProjectSourceVersion = 9999 |
| 53 | endif |
| 54 | |
| 55 | ifndef RC_ProjectSourceSubversion |
| 56 | RC_ProjectSourceSubversion = 01 |
| 57 | endif |
| 58 | |
| 59 | install: $(OBJROOT) $(SYMROOT) $(DSTROOT) |
| 60 | cd $(OBJROOT) && \ |
| 61 | $(SRC)/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ |
| 62 | $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT) \ |
| 63 | $(RC_ProjectSourceVersion) $(RC_ProjectSourceSubversion) \ |
Evan Cheng | 1a7fdae | 2008-01-18 21:01:00 +0000 | [diff] [blame] | 64 | $(LLVM_ASSERTIONS) $(LLVM_OPTIMIZED) |
Bill Wendling | ce6822a | 2007-11-09 06:59:33 +0000 | [diff] [blame] | 65 | |
| 66 | # installhdrs does nothing, because the headers aren't useful until |
| 67 | # the compiler is installed. |
| 68 | installhdrs: |
| 69 | |
| 70 | # We build and install in one shell script. |
| 71 | build: |
| 72 | |
| 73 | installsrc: |
| 74 | @echo |
| 75 | @echo ++++++++++++++++++++++ |
| 76 | @echo + Installing sources + |
| 77 | @echo ++++++++++++++++++++++ |
| 78 | @echo |
| 79 | if [ $(SRCROOT) != . ]; then \ |
| 80 | $(PAX) -rw . $(SRCROOT); \ |
| 81 | fi |
| 82 | find -d "$(SRCROOT)" \( -type d -a -name .svn -o \ |
| 83 | -type f -a -name .DS_Store -o \ |
| 84 | -name \*~ -o -name .\#\* \) \ |
| 85 | -exec rm -rf {} \; |
| 86 | |
| 87 | ####################################################################### |
| 88 | |
| 89 | clean: |
| 90 | @echo |
| 91 | @echo ++++++++++++ |
| 92 | @echo + Cleaning + |
| 93 | @echo ++++++++++++ |
| 94 | @echo |
| 95 | @if [ -d $(OBJROOT) -a "$(OBJROOT)" != / ]; then \ |
| 96 | echo '*** DELETING ' $(OBJROOT); \ |
| 97 | rm -rf $(OBJROOT); \ |
| 98 | fi |
| 99 | @if [ -d $(SYMROOT) -a "$(SYMROOT)" != / ]; then \ |
| 100 | echo '*** DELETING ' $(SYMROOT); \ |
| 101 | rm -rf $(SYMROOT); \ |
| 102 | fi |
| 103 | @if [ -d $(DSTROOT) -a "$(DSTROOT)" != / ]; then \ |
| 104 | echo '*** DELETING ' $(DSTROOT); \ |
| 105 | rm -rf $(DSTROOT); \ |
| 106 | fi |
| 107 | |
| 108 | ####################################################################### |
| 109 | |
| 110 | $(OBJROOT) $(SYMROOT) $(DSTROOT): |
| 111 | mkdir -p $@ |
| 112 | |
| 113 | .PHONY: install installsrc clean |