From 273e48b53b0a44629eb90b2c5f029adbb4c20f77 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Tue, 20 Jul 2010 20:44:02 +0000 Subject: [PATCH] Add support for a new Apple-style build target, EmbeddedSim, that builds llvmCore for the iOS Simulator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108922 91177308-0d34-0410-b5e6-96231b3b80d8 --- Makefile | 3 ++- utils/buildit/GNUmakefile | 14 +++++++++++--- utils/buildit/build_llvm | 11 +++++++++-- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index e5d65436326..e93ef605be9 100644 --- a/Makefile +++ b/Makefile @@ -112,7 +112,8 @@ cross-compile-build-tools: --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE); \ cd .. ; \ fi; \ - ($(MAKE) -C BuildTools \ + (unset SDKROOT; \ + $(MAKE) -C BuildTools \ BUILD_DIRS_ONLY=1 \ UNIVERSAL= \ ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \ diff --git a/utils/buildit/GNUmakefile b/utils/buildit/GNUmakefile index d17585f8f33..dbdb930ae1b 100644 --- a/utils/buildit/GNUmakefile +++ b/utils/buildit/GNUmakefile @@ -49,8 +49,9 @@ endif # Default to not install libLTO.dylib. INSTALL_LIBLTO := no -# Default to do a native build, not a cross-build for an ARM host. +# Default to do a native build, not a cross-build for an ARM host or simulator. ARM_HOSTED_BUILD := no +IOS_SIM_BUILD := no ifndef RC_ProjectSourceVersion RC_ProjectSourceVersion = 9999 @@ -66,12 +67,19 @@ install: $(OBJROOT) $(SYMROOT) $(DSTROOT) $(SRC)/utils/buildit/build_llvm "$(RC_ARCHS)" "$(TARGETS)" \ $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT) \ $(ENABLE_ASSERTIONS) $(LLVM_OPTIMIZED) $(INSTALL_LIBLTO) \ - $(ARM_HOSTED_BUILD) \ + $(ARM_HOSTED_BUILD) $(IOS_SIM_BUILD) \ $(RC_ProjectSourceVersion) $(RC_ProjectSourceSubversion) EmbeddedHosted: $(MAKE) ARM_HOSTED_BUILD=yes PREFIX=/usr install +# When building for the iOS simulator, MACOSX_DEPLOYMENT_TARGET is not set +# by default, but it needs to be set when building tools that run on the host +# (e.g., tblgen), so set it here. +EmbeddedSim: + export MACOSX_DEPLOYMENT_TARGET=`sw_vers -productVersion`; \ + $(MAKE) IOS_SIM_BUILD=yes PREFIX=/usr install + # installhdrs does nothing, because the headers aren't useful until # the compiler is installed. installhdrs: @@ -120,4 +128,4 @@ clean: $(OBJROOT) $(SYMROOT) $(DSTROOT): mkdir -p $@ -.PHONY: install installsrc clean EmbeddedHosted +.PHONY: install installsrc clean EmbeddedHosted EmbeddedSim diff --git a/utils/buildit/build_llvm b/utils/buildit/build_llvm index 47bdc599fc3..37fb0efaa36 100755 --- a/utils/buildit/build_llvm +++ b/utils/buildit/build_llvm @@ -49,11 +49,14 @@ INSTALL_LIBLTO="$9" # A yes/no parameter that controls whether to cross-build for an ARM host. ARM_HOSTED_BUILD="${10}" +# A yes/no parameter that controls whether to cross-build for the iOS simulator +IOS_SIM_BUILD="${11}" + # The version number of the submission, e.g. 1007. -LLVM_SUBMIT_VERSION="${11}" +LLVM_SUBMIT_VERSION="${12}" # The subversion number of the submission, e.g. 03. -LLVM_SUBMIT_SUBVERSION="${12}" +LLVM_SUBMIT_SUBVERSION="${13}" # The current working directory is where the build will happen. It may already # contain a partial result of an interrupted build, in which case this script @@ -124,6 +127,10 @@ fi if [ "$ARM_HOSTED_BUILD" = yes ]; then configure_opts="--enable-targets=arm --host=arm-apple-darwin10 \ --target=arm-apple-darwin10 --build=i686-apple-darwin10" +elif [ "$IOS_SIM_BUILD" = yes ]; then + # Use a non-standard "darwin_sim" host triple to trigger a cross-build. + configure_opts="--enable-targets=x86 --host=i686-apple-darwin_sim \ + --build=i686-apple-darwin10" else configure_opts="--enable-targets=arm,x86,powerpc,cbe" fi