| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| # Ensure that this happens before including rules.mk |
| ifdef USE_ICU |
| ifndef MOZ_NATIVE_ICU |
| # Library names: On Windows, ICU uses modified library names for static |
| # and debug libraries. |
| ifdef MOZ_SHARED_ICU |
| ifeq ($(OS_ARCH),WINNT) |
| ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll) |
| else # ! WINNT |
| ifeq ($(OS_ARCH),Darwin) |
| ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname).$(MOZ_ICU_VERSION)$(DLL_SUFFIX)) |
| else # ! Darwin |
| ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname)$(DLL_SUFFIX).$(MOZ_ICU_VERSION)) |
| endif |
| endif # WINNT |
| ifdef ICU_FILES |
| ICU_DEST := $(DIST)/bin |
| INSTALL_TARGETS += ICU |
| $(ICU_FILES): buildicu |
| ICU_TARGET := target |
| endif |
| else # !MOZ_SHARED_ICU |
| ifeq ($(OS_ARCH),WINNT) |
| ICU_LIB_RENAME = $(foreach libname,$(ICU_LIB_NAMES),\ |
| cp -p $(DEPTH)/intl/icu/target/lib/s$(libname)$(MOZ_ICU_DBG_SUFFIX).lib $(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX).lib;) |
| endif |
| endif # MOZ_SHARED_ICU |
| endif # !MOZ_NATIVE_ICU |
| endif # USE_ICU |
| |
| include $(topsrcdir)/config/rules.mk |
| |
| ifdef USE_ICU |
| ifndef MOZ_NATIVE_ICU |
| target:: buildicu |
| $(STATIC_LIBS): buildicu |
| |
| # - Force ICU to use the standard suffix for object files because expandlibs |
| # will discard all files with a non-standard suffix (bug 857450). |
| # - Options for genrb: -k strict parsing; -R omit collation tailoring rules. |
| buildicu:: |
| # ICU's build system is full of races, so force non-parallel build. |
| # Msys screws up GENRBOPTS when it contains spaces, so all genrb flags need |
| # to be stuck together. See https://bugzilla.mozilla.org/show_bug.cgi?id=1034594#c34 |
| ifdef CROSS_COMPILE |
| +ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kRC' |
| endif |
| +ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kR' |
| $(ICU_LIB_RENAME) |
| |
| distclean clean:: |
| ifdef CROSS_COMPILE |
| +$(MAKE) -C $(DEPTH)/intl/icu/host $@ STATIC_O=$(OBJ_SUFFIX) |
| endif |
| +$(MAKE) -C $(DEPTH)/intl/icu/target $@ STATIC_O=$(OBJ_SUFFIX) |
| |
| endif |
| endif |