From 70b72e8705c17bad7a232b909b30f0f5b3635821 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 6 Oct 2015 15:03:05 +0200 Subject: Emscripten: Add patch to build ICU Change-Id: If5924054b53fd2b5acf2ec903cd1acf710cc2ef1 --- external/icu/UnpackedTarball_icu.mk | 1 + external/icu/icu4c-emscripten.patch.1 | 116 ++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 external/icu/icu4c-emscripten.patch.1 (limited to 'external/icu') diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk index 2beeb68b89a0..a1640e77d66b 100644 --- a/external/icu/UnpackedTarball_icu.mk +++ b/external/icu/UnpackedTarball_icu.mk @@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\ external/icu/icu.changeset_36801.patch.1 \ $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.diff) \ external/icu/icu.vc15.patch \ + $(if $(filter EMSCRIPTEN,$(OS)),external/icu/icu4c-emscripten.patch.1) \ )) # vim: set noet sw=4 ts=4: diff --git a/external/icu/icu4c-emscripten.patch.1 b/external/icu/icu4c-emscripten.patch.1 new file mode 100644 index 000000000000..3ce6d527b5cd --- /dev/null +++ b/external/icu/icu4c-emscripten.patch.1 @@ -0,0 +1,116 @@ +--- icu.org/source/config/mh-unknown 2015-10-06 11:35:03.212459286 +0200 ++++ icu/source/config/mh-unknown 2015-10-06 12:01:00.497972406 +0200 +@@ -1,27 +1,90 @@ + ## -*-makefile-*- +-## Copyright (c) 2003, International Business Machines Corporation and ++## Emscripten-specific setup ++## Copyright (c) 1999-2013, International Business Machines Corporation and + ## others. All Rights Reserved. +-## + +-# Note, this is not a real mh- file. You got here because configure +-# (specifically, aclocal.m4) could not determine a suitable mh- file. +-# +-# Perhaps your platform wasn't detected- try changing aclocal.m4 and +-# re-running autoconf. +-# +-# If your platform is truly new/different: +-# As a start, try copying mh-linux (which is fairly generic) over this +-# file, and re-run config.status. +- +-%.$(STATIC_O) %.o %.$(STATIC_O) %.o ../data/%.o %.d %.d %.$(SO).$(SO_TARGET_VERSION_MAJOR) %.$(SO): +- @echo +- @echo +- @echo "*** ERROR - configure could not detect your platform" +- @echo "*** see the readme.html" +- @echo "*** or, try copying icu/source/config/mh-linux to mh-unknown" +- @echo "*** and editing it." +- @echo +- @echo +- exit 1 ++## Commands to generate dependency files ++GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) ++GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) $(CXXFLAGS) + ++## Flags for position independent code ++SHAREDLIBCFLAGS = -fPIC ++SHAREDLIBCXXFLAGS = -fPIC ++SHAREDLIBCPPFLAGS = -DPIC + ++## Additional flags when building libraries and with threads ++THREADSCPPFLAGS = -D_REENTRANT ++LIBCPPFLAGS = ++ ++## Compiler switch to embed a runtime search path ++LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN ++LD_RPATH_PRE = -Wl,-rpath, ++ ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH: ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN' ++ ++## These are the library specific LDFLAGS ++#LDFLAGSICUDT=-nodefaultlibs -nostdlib ++# Debian change: linking icudata as data only causes too many problems. ++LDFLAGSICUDT= ++ ++## Compiler switch to embed a library name ++# The initial tab in the next line is to prevent icu-config from reading it. ++ LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) ++#SH# # We can't depend on MIDDLE_SO_TARGET being set. ++#SH# LD_SONAME= ++ ++## Shared library options ++LD_SOOPTIONS= -Wl,-Bsymbolic-functions ++ ++## Shared object suffix ++SO = so ++## Non-shared intermediate object suffix ++STATIC_O = ao ++ ++## Compilation rules ++%.$(STATIC_O): $(srcdir)/%.c ++ $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS)) -o $@ $<) ++%.o: $(srcdir)/%.c ++ $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS)) -o $@ $<) ++ ++%.$(STATIC_O): $(srcdir)/%.cpp ++ $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS)) -o $@ $<) ++%.o: $(srcdir)/%.cpp ++ $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS)) -o $@ $<) ++ ++ ++## Dependency rules ++%.d: $(srcdir)/%.c ++ $(call ICU_MSG,(deps)) $< ++ @$(SHELL) -ec '$(GEN_DEPS.c) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' ++ ++%.d: $(srcdir)/%.cpp ++ $(call ICU_MSG,(deps)) $< ++ @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' ++ ++## Versioned libraries rules ++ ++%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) ++ $(RM) $@ && ln -s ${