summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2012-12-27 19:23:04 +0200
committerTor Lillqvist <tml@iki.fi>2012-12-27 19:23:04 +0200
commit879f3aa79f524658f0698717e3eef5c361310531 (patch)
treebb31cfe26e566945349ed95e5fbb224a11f46016
parentSurely we want to pass *relative* pathnames to the tar pipe (diff)
downloadcore-879f3aa79f524658f0698717e3eef5c361310531.tar.gz
core-879f3aa79f524658f0698717e3eef5c361310531.zip
Fix icu cross-compilation
We need to pass the location of the icu build root for the BUILD platform with the --with-cross-build option when configuring icu for cross-compilation (to the HOST platform). I.e. we always need to build it for the BUILD platform. Surely this could be done in a more elegant way, but I got lost in the mess, and just hacked it in the cross-toolset rule in Makefile.in. Change-Id: Ia5e9d13d01067c6dded1fdc86c56f8f39aae6bc8
-rw-r--r--Makefile.in6
-rw-r--r--icu/ExternalProject_icu.mk4
2 files changed, 8 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in
index d4d4b9f465e5..2a56db0ae489 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -292,7 +292,13 @@ build-nocheck : export SKIP_TESTS := YES
build-nocheck : build
cross-toolset: bootstrap fetch
+# We need to build icu for the build platform, as building icu for the host
+# platform requires tools built as part of icu that can run on the build
+# platform. see --with-cross-build in icu/ExternalProject_icu.mk
+ $(GNUMAKE) gb_Side=build icu
+#
cd cross_toolset && $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS)
+#
ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
ifneq (WNT,$(OS))
# We need to build nss for nsinstall... See NSINSTALL=... in nss/makefile.mk
diff --git a/icu/ExternalProject_icu.mk b/icu/ExternalProject_icu.mk
index 0758d3777e89..2be2957bedca 100644
--- a/icu/ExternalProject_icu.mk
+++ b/icu/ExternalProject_icu.mk
@@ -37,7 +37,7 @@ $(call gb_ExternalProject_get_state_target,icu,build) :
$(if $(filter YES,$(MINGW_SHARED_GCCLIB)),-shared-libgcc)" \
./configure
$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) \
- --with-cross-build=$(call gb_UnpackedTarball_get_dir,icu)/source) \
+ --with-cross-build=$(subst $(INPATH),$(INPATH_FOR_BUILD),$(call gb_UnpackedTarball_get_dir,icu))/source) \
--enable-layout --disable-static --enable-shared --disable-samples \
&& $(GNUMAKE) \
&& for lib in icudata icuin icuuc icule icutu; do \
@@ -76,7 +76,7 @@ $(call gb_ExternalProject_get_state_target,icu,build) :
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),--enable-static --disable-shared,\
--disable-static --enable-shared $(if $(filter ANDROID,$(OS)),--with-library-suffix=lo)) \
$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)\
- --with-cross-build=$(call gb_UnpackedTarball_get_dir,icu)/source)\
+ --with-cross-build=$(subst $(INPATH),$(INPATH_FOR_BUILD),$(call gb_UnpackedTarball_get_dir,icu))/source)\
&& $(GNUMAKE) \
&& touch $@