From 4a53e1ef9d137af590425f77f02a4e974f370656 Mon Sep 17 00:00:00 2001 From: Stuart Hastings Date: Thu, 22 Oct 2009 17:22:37 +0000 Subject: [PATCH] Trying again to tweak the top-level Makefile to facilitate an Apple-style build. Now with Clang-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84872 91177308-0d34-0410-b5e6-96231b3b80d8 --- Makefile | 12 ++++++++++++ utils/buildit/GNUmakefile | 2 +- utils/buildit/build_llvm | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f3bf3f2345e..d2000b48387 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,12 @@ LEVEL := . # # When cross-compiling, there are some things (tablegen) that need to # be build for the build system first. + +# If "RC_ProjectName" exists in the environment, and its value is +# "llvmCore", then this is an "Apple-style" build; search for +# "Apple-style" in the comments for more info. Anything else is a +# normal build. +ifneq ($(RC_ProjectName),llvmCore) # Normal build (not "Apple-style"). ifeq ($(BUILD_DIRS_ONLY),1) DIRS := lib/System lib/Support utils OPTIONAL_DIRS := @@ -211,3 +217,9 @@ happiness: update all check unittests .NOTPARALLEL: +else # Building "Apple-style." +# In an Apple-style build, once configuration is done, lines marked +# "Apple-style" are removed with sed! Please don't remove these! +# Look for the string "Apple-style" in utils/buildit/build_llvm. +include $(shell find . -name GNUmakefile) # Building "Apple-style." +endif # Building "Apple-style." diff --git a/utils/buildit/GNUmakefile b/utils/buildit/GNUmakefile index e3b334a045d..997188333c1 100644 --- a/utils/buildit/GNUmakefile +++ b/utils/buildit/GNUmakefile @@ -59,7 +59,7 @@ endif # NOTE : Always put version numbers at the end because they are optional. install: $(OBJROOT) $(SYMROOT) $(DSTROOT) cd $(OBJROOT) && \ - $(SRC)/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ + $(SRC)/utils/buildit/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT) \ $(LLVM_ASSERTIONS) $(LLVM_OPTIMIZED) \ $(RC_ProjectSourceVersion) $(RC_ProjectSourceSubversion) diff --git a/utils/buildit/build_llvm b/utils/buildit/build_llvm index 91fbe15be47..2bdb208237d 100755 --- a/utils/buildit/build_llvm +++ b/utils/buildit/build_llvm @@ -82,6 +82,10 @@ SRC_DIR=$DIR/src rm -rf $SRC_DIR || exit 1 mkdir $SRC_DIR || exit 1 ln -s $ORIG_SRC_DIR/* $SRC_DIR/ || exit 1 +# We can't use the top-level Makefile as-is. Remove the soft link: +rm $SRC_DIR/Makefile || exit 1 +# Now create our own by editing the top-level Makefile, deleting every line marked "Apple-style": +sed -e '/[Aa]pple-style/d' -e '/include.*GNUmakefile/d' $ORIG_SRC_DIR/Makefile > $SRC_DIR/Makefile || exit 1 # Build the LLVM tree universal. mkdir -p $DIR/obj-llvm || exit 1