mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 11:15:34 +00:00
58e2e722d0
Also fixes bug 926980 - load ICU data from an archive file. Stop invoking ICU's autoconf build system. Instead, have hand-authored moz.build files under config/external/icu to build what we need. In addition, we'll commit a pre-built copy of the ICU data file (currently icudt56l.dat) under config/external/icu/data to avoid having to build ICU host tools to generate it. config/external/icu/data also contains some assembly files which can generate an object file containing the ICU data file contents so that the JS shell (or standalone JS builds) can be linked directly to the data without having to deal with the external data file. This requires yasm or GNU as. Various bits of packaging have been updated to account for the ICU data file. XPCOM initialization now sets the ICU data directory so ICU can locate its data file. The update-icu.sh script has been modified to read the list of C/C++ source files out of the ICU Makefiles and update `sources.mozbuild` files under config/external/icu, as well as build a local copy of ICU using its autoconf build system to generate the ICU data file to be committed in-tree. MozReview-Commit-ID: 8Pfkzqt6S1W --HG-- extra : rebase_source : 31426cddddb5543e0191059ba2f2eb069abe7727
140 lines
3.2 KiB
Makefile
140 lines
3.2 KiB
Makefile
# 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
|
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
|
|
|
|
MOZ_PKG_MANIFEST = $(srcdir)/package-manifest.in
|
|
|
|
ifdef MOZ_CHROME_MULTILOCALE
|
|
MOZ_PKG_MANIFEST_DEPS = locale-manifest.in
|
|
|
|
DEFINES += -DPKG_LOCALE_MANIFEST=$(CURDIR)/locale-manifest.in
|
|
endif
|
|
|
|
DEFINES += \
|
|
-DMOZ_APP_NAME=$(MOZ_APP_NAME) \
|
|
-DPREF_DIR=$(PREF_DIR) \
|
|
$(NULL)
|
|
|
|
DEFINES += -DJAREXT=
|
|
|
|
DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)
|
|
|
|
# Set MSVC dlls version to package, if any.
|
|
ifdef MOZ_NO_DEBUG_RTL
|
|
ifdef WIN32_REDIST_DIR
|
|
DEFINES += -DMOZ_PACKAGE_MSVC_DLLS=1
|
|
DEFINES += -DMSVC_C_RUNTIME_DLL=$(MSVC_C_RUNTIME_DLL)
|
|
DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL)
|
|
endif
|
|
ifdef WIN_UCRT_REDIST_DIR
|
|
DEFINES += -DMOZ_PACKAGE_WIN_UCRT_DLLS=1
|
|
endif
|
|
endif
|
|
|
|
ifdef MOZ_DEBUG
|
|
DEFINES += -DMOZ_DEBUG=1
|
|
endif
|
|
|
|
ifdef ENABLE_MARIONETTE
|
|
DEFINES += -DENABLE_MARIONETTE=1
|
|
endif
|
|
|
|
MOZ_PACKAGER_MINIFY=1
|
|
|
|
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
|
|
ifndef _APPNAME
|
|
_APPNAME = $(MOZ_MACBUNDLE_NAME)
|
|
endif
|
|
ifndef _BINPATH
|
|
_BINPATH = /$(_APPNAME)/Contents/MacOS
|
|
endif
|
|
ifndef _RESPATH
|
|
_RESPATH = /$(_APPNAME)/Contents/Resources
|
|
endif
|
|
endif
|
|
|
|
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
|
|
|
# Note that JS_BINARY can be defined in packager.mk, so this test must come after
|
|
# including that file. MOZ_PACKAGER_MINIFY_JS is used in packager.mk, but since
|
|
# recipe evaluation is deferred, we can set it here after the inclusion.
|
|
ifneq (,$(JS_BINARY))
|
|
ifndef MOZ_DEBUG
|
|
MOZ_PACKAGER_MINIFY_JS=1
|
|
endif
|
|
endif
|
|
|
|
ifeq (bundle, $(MOZ_FS_LAYOUT))
|
|
BINPATH = $(_BINPATH)
|
|
RESPATH = $(_RESPATH)
|
|
DEFINES += -DAPPNAME=$(_APPNAME)
|
|
else
|
|
# Every other platform just winds up in dist/bin
|
|
BINPATH = bin
|
|
RESPATH = bin
|
|
endif
|
|
DEFINES += -DBINPATH=$(BINPATH)
|
|
DEFINES += -DRESPATH=$(RESPATH)
|
|
|
|
LPROJ_ROOT = $(firstword $(subst -, ,$(AB_CD)))
|
|
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
|
|
ifeq (zh-TW,$(AB_CD))
|
|
LPROJ_ROOT := $(subst -,_,$(AB_CD))
|
|
endif
|
|
endif
|
|
DEFINES += -DLPROJ_ROOT=$(LPROJ_ROOT)
|
|
|
|
ifneq (,$(filter WINNT Darwin Android,$(OS_TARGET)))
|
|
DEFINES += -DMOZ_SHARED_MOZGLUE=1
|
|
endif
|
|
|
|
ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
|
|
DEFINES += -DMOZ_RTSP
|
|
endif
|
|
|
|
DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
|
|
ifdef MOZ_SYSTEM_ICU
|
|
DEFINES += -DMOZ_SYSTEM_ICU
|
|
endif
|
|
DEFINES += -DMOZ_ICU_DBG_SUFFIX=$(MOZ_ICU_DBG_SUFFIX)
|
|
DEFINES += -DICU_DATA_FILE=$(ICU_DATA_FILE)
|
|
|
|
ifneq (,$(filter gtk%,$(MOZ_WIDGET_TOOLKIT)))
|
|
DEFINES += -DMOZ_GTK=1
|
|
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk3)
|
|
DEFINES += -DMOZ_GTK3=1
|
|
endif
|
|
endif
|
|
|
|
ifdef MOZ_CHROME_MULTILOCALE
|
|
locale-manifest.in: $(GLOBAL_DEPS) FORCE
|
|
printf '\n[multilocale]\n' > $@
|
|
for LOCALE in $(MOZ_CHROME_MULTILOCALE) ;\
|
|
do \
|
|
printf '$(BINPATH)/chrome/'"$$LOCALE"'$(JAREXT)\n' >> $@; \
|
|
printf '$(BINPATH)/chrome/'"$$LOCALE"'.manifest\n' >> $@; \
|
|
done
|
|
|
|
GARBAGE += locale-manifest.in
|
|
endif
|
|
|
|
ifdef FXOS_SIMULATOR
|
|
export MAKE
|
|
|
|
.PHONY: simulator
|
|
simulator: make-package
|
|
@echo 'Building simulator addon...'
|
|
$(PYTHON) $(topsrcdir)/b2g/simulator/build_xpi.py $(MOZ_PKG_PLATFORM)
|
|
|
|
libs:: simulator
|
|
|
|
# Ensure copying Simulator xpi to ftp
|
|
UPLOAD_EXTRA_FILES += fxos-simulator-*-*.xpi
|
|
endif
|