зеркало из https://github.com/mozilla/gecko-dev.git
Bug 958404 - Recurse icu from top-level when building js. r=gps
This commit is contained in:
Родитель
bfcfeb45e4
Коммит
36f190f39d
|
@ -0,0 +1,81 @@
|
|||
# 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
|
||||
SUPPRESS_DEFAULT_RULES = 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.
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef MOZ_DEBUG
|
||||
ICU_LIB_SUFFIX=d
|
||||
endif
|
||||
endif # WINNT
|
||||
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)$(ICU_LIB_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)$(ICU_LIB_SUFFIX).lib $(DEPTH)/intl/icu/target/lib/$(libname).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
|
|
@ -98,56 +98,8 @@ jsconfig_FILES = $(export_files)
|
|||
jsconfig_DEST = $(DIST)/include
|
||||
jsconfig_TARGET := export
|
||||
|
||||
# Ensure that this happens before using $(MOZ_PSEUDO_DERECURSE)
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
# 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.
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef MOZ_DEBUG
|
||||
ICU_LIB_SUFFIX=d
|
||||
endif
|
||||
endif # WINNT
|
||||
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)$(ICU_LIB_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 := $(if $(MOZ_PSEUDO_DERECURSE),compile,export)
|
||||
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)$(ICU_LIB_SUFFIX).lib $(DEPTH)/intl/icu/target/lib/$(libname).lib;)
|
||||
endif
|
||||
endif # MOZ_SHARED_ICU
|
||||
endif # !MOZ_NATIVE_ICU
|
||||
endif # ENABLE_INTL_API
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
.PHONY: buildicu
|
||||
buildicu:
|
||||
$(if $(MOZ_PSEUDO_DERECURSE),compile,export):: buildicu
|
||||
|
||||
#############################################
|
||||
# BEGIN ECMAScript Internationalization API
|
||||
#
|
||||
|
@ -186,31 +138,6 @@ endif
|
|||
endif
|
||||
endif
|
||||
|
||||
ifdef .PYMAKE
|
||||
ICU_MAKE = $(GMAKE)
|
||||
else
|
||||
ICU_MAKE = $(MAKE)
|
||||
endif
|
||||
|
||||
# - 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 $(DEPTH)/intl/icu/host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R -C'
|
||||
endif
|
||||
+$(ICU_MAKE) -j1 -C $(DEPTH)/intl/icu/target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R'
|
||||
$(ICU_LIB_RENAME)
|
||||
|
||||
distclean clean::
|
||||
ifdef CROSS_COMPILE
|
||||
$(call SUBMAKE,$@,$(DEPTH)/intl/icu/host)
|
||||
endif
|
||||
$(call SUBMAKE,$@,$(DEPTH)/intl/icu/target)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@ if CONFIG['BUILDING_JS']:
|
|||
add_tier_dir('base', ['config', 'mfbt'])
|
||||
if CONFIG['JS_HAS_CTYPES'] and not CONFIG['MOZ_NATIVE_FFI']:
|
||||
add_tier_dir('js', ['js/src/ctypes/libffi'], static=True)
|
||||
add_tier_dir('js', ['intl/icu'], static=True)
|
||||
CONFIGURE_SUBST_FILES += ['intl/icu/Makefile']
|
||||
add_tier_dir('js', ['js/src'])
|
||||
else:
|
||||
CONFIGURE_SUBST_FILES += [
|
||||
|
|
Загрузка…
Ссылка в новой задаче