aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile12
-rw-r--r--utils/buildit/GNUmakefile2
-rwxr-xr-xutils/buildit/build_llvm4
3 files changed, 17 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index f3bf3f2345..d2000b4838 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 e3b334a045..997188333c 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 91fbe15be4..2bdb208237 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