intl/icu/Makefile.in
author Cosmin Malutan <cosmin.malutan@softvision.ro>
Mon, 28 Jul 2014 06:28:00 +0200
changeset 208285 1b581df81c9bd32339f3e5c3bb0e8bf11e160132
parent 206971 8784445f4d4fd97f74ca8c255ab8685fb52b1600
child 211392 bcd694f0e95dad42f9d355c2f8c8a99715b714ad
permissions -rw-r--r--
Bug 1032255 - TPS has to exit with code != 0 in case of failures. r=aeftimie, dhunt a=testonly DONTBUILD

# 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/.

STANDALONE_MAKEFILE = 1

# Ensure that this happens before including rules.mk
ifdef ENABLE_INTL_API
  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)
        ifdef JS_SHARED_LIBRARY
          ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll)
        endif
      else # ! WINNT
        ifeq ($(OS_ARCH),Darwin)
          ifdef JS_SHARED_LIBRARY
            ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))
          endif
        else # ! Darwin
          ifdef JS_SHARED_LIBRARY
            ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))
          endif
        endif
      endif # WINNT
      ifdef ICU_FILES
        ICU_DEST := $(DIST)/bin
        INSTALL_TARGETS += ICU
        $(ICU_FILES): buildicu
        ICU_TARGET := default
      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 # ENABLE_INTL_API

include $(topsrcdir)/config/rules.mk

ifdef ENABLE_INTL_API
ifndef MOZ_NATIVE_ICU
ifdef .PYMAKE
ICU_MAKE = $(GMAKE)
else
ICU_MAKE = $(MAKE)
endif

default:: buildicu

# - ICU requires GNU make according to its readme.html. pymake can't be used
#   because it doesn't support order only dependencies.
# - 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.
ifdef CROSS_COMPILE
	+$(ICU_MAKE) -j1 -C host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R -C'
endif
	+$(ICU_MAKE) -j1 -C target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R'
	$(ICU_LIB_RENAME)

distclean clean::
ifdef CROSS_COMPILE
	+$(ICU_MAKE) -C host $@ STATIC_O=$(OBJ_SUFFIX)
endif
	+$(ICU_MAKE) -C target $@ STATIC_O=$(OBJ_SUFFIX)

endif
endif