mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
7245bd41b2
This drops the abuse of make dependencies to factor our steps in l10n repacks and language packs. It's replaced with clobbers, libs, and the packaging, which can be shared between installers and the language pack. MozReview-Commit-ID: 2vEHp0QogXQ --HG-- extra : rebase_source : c14f0b17904f8f9e0e3f004384c2a292ceeafe4f extra : source : e95f8bd7b5190bf1d3fae75a88a15ebbe6613809
194 lines
7.9 KiB
Makefile
194 lines
7.9 KiB
Makefile
# vim:set ts=8 sw=8 sts=8 noet:
|
|
# 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/.
|
|
|
|
include $(topsrcdir)/config/config.mk
|
|
|
|
|
|
SUBMAKEFILES += \
|
|
$(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/Makefile \
|
|
$(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales/Makefile \
|
|
$(NULL)
|
|
|
|
# This makefile uses variable overrides from the libs-% target to
|
|
# build non-default locales to non-default dist/ locations. Be aware!
|
|
|
|
PWD := $(CURDIR)
|
|
|
|
# These are defaulted to be compatible with the files the wget-en-US target
|
|
# pulls. You may override them if you provide your own files.
|
|
ZIP_IN ?= $(ABS_DIST)/$(PACKAGE)
|
|
|
|
MOZ_LANGPACK_EID=langpack-$(AB_CD)@firefox.mozilla.org
|
|
# For Nightly, we know where to get the builds from to do local repacks
|
|
ifdef NIGHTLY_BUILD
|
|
export EN_US_BINARY_URL ?= https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central
|
|
endif
|
|
|
|
ifneq (,$(filter cocoa,$(MOZ_WIDGET_TOOLKIT)))
|
|
MOZ_PKG_MAC_DSSTORE=$(ABS_DIST)/branding/dsstore
|
|
MOZ_PKG_MAC_BACKGROUND=$(ABS_DIST)/branding/background.png
|
|
MOZ_PKG_MAC_ICON=$(ABS_DIST)/branding/disk.icns
|
|
MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
|
|
endif
|
|
|
|
MOZ_SFX_PACKAGE=$(topsrcdir)/other-licenses/7zstub/firefox/7zSD.sfx
|
|
MOZ_INSTALLER_PATH=$(topsrcdir)/browser/installer/windows
|
|
|
|
SEARCHPLUGINS_FILENAMES := $(shell $(call py_action,output_searchplugins_list,$(srcdir)/search/list.json $(AB_CD)))
|
|
SEARCHPLUGINS_PATH := .deps/generated_$(AB_CD)
|
|
SEARCHPLUGINS_TARGET := libs searchplugins
|
|
SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_FILENAMES)),$(or $(wildcard $(srcdir)/searchplugins/$(plugin)),$(warning Missing searchplugin: $(plugin))))
|
|
# Some locale-specific search plugins may have preprocessor directives, but the
|
|
# default en-US ones do not.
|
|
SEARCHPLUGINS_FLAGS := --silence-missing-directive-warnings
|
|
PP_TARGETS += SEARCHPLUGINS
|
|
|
|
list-json = $(SEARCHPLUGINS_PATH)/list.json
|
|
GARBAGE += $(list-json)
|
|
|
|
libs:: searchplugins
|
|
|
|
# Required for l10n.mk - defines a list of app sub dirs that should
|
|
# be included in langpack xpis.
|
|
DIST_SUBDIRS = $(DIST_SUBDIR)
|
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
include $(topsrcdir)/toolkit/locales/l10n.mk
|
|
|
|
$(list-json): $(call mkdir_deps,$(SEARCHPLUGINS_PATH)) $(if $(IS_LANGUAGE_REPACK),FORCE)
|
|
$(call py_action,generate_searchjson,$(srcdir)/search/list.json $(AB_CD) $(list-json))
|
|
searchplugins:: $(list-json)
|
|
|
|
$(DIST)/branding:
|
|
$(NSINSTALL) -D $@
|
|
|
|
DEFINES += -DBOOKMARKS_INCLUDE_DIR=$(dir $(call MERGE_FILE,profile/bookmarks.inc))
|
|
|
|
libs-%: AB_CD=$*
|
|
libs-%:
|
|
$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
|
|
$(NSINSTALL) -D $(DIST)/install
|
|
@$(MAKE) -C ../../toolkit/locales libs-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
|
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
|
|
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
|
|
ifneq (,$(wildcard ../extensions/formautofill/locales))
|
|
@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
|
|
endif
|
|
@$(MAKE) -C ../extensions/onboarding/locales AB_CD=$* XPI_NAME=locale-$*
|
|
@$(MAKE) -C ../extensions/pocket/locale AB_CD=$* XPI_NAME=locale-$*
|
|
ifndef RELEASE_OR_BETA
|
|
@$(MAKE) -C ../extensions/presentation/locale AB_CD=$* XPI_NAME=locale-$*
|
|
endif
|
|
ifneq '$(or $(MOZ_DEV_EDITION),$(NIGHTLY_BUILD))' ''
|
|
@$(MAKE) -C ../extensions/webcompat-reporter/locales AB_CD=$* XPI_NAME=locale-$*
|
|
endif
|
|
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
|
@$(MAKE) -C ../../devtools/shim/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
|
@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
|
|
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
|
|
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
|
|
|
|
chrome-%: AB_CD=$*
|
|
chrome-%: IS_LANGUAGE_REPACK=1
|
|
chrome-%:
|
|
$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
|
|
@$(MAKE) -C ../../toolkit/locales chrome-$*
|
|
@$(MAKE) -C ../../services/sync/locales chrome AB_CD=$*
|
|
@$(MAKE) -C ../../extensions/spellcheck/locales chrome AB_CD=$*
|
|
ifneq (,$(wildcard ../extensions/formautofill/locales))
|
|
@$(MAKE) -C ../extensions/formautofill/locales chrome AB_CD=$*
|
|
endif
|
|
@$(MAKE) -C ../extensions/pocket/locale chrome AB_CD=$*
|
|
ifndef RELEASE_OR_BETA
|
|
@$(MAKE) -C ../extensions/presentation/locale chrome AB_CD=$*
|
|
endif
|
|
@$(MAKE) -C ../../devtools/client/locales chrome AB_CD=$*
|
|
@$(MAKE) -C ../../devtools/shim/locales chrome AB_CD=$*
|
|
@$(MAKE) chrome AB_CD=$*
|
|
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
|
|
ifdef NIGHTLY_BUILD
|
|
@$(MAKE) -C ../extensions/webcompat-reporter/locales chrome AB_CD=$*
|
|
endif
|
|
|
|
package-win32-installer: WIN32_INSTALLER_OUT=$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
|
|
package-win32-installer: $(SUBMAKEFILES)
|
|
@echo 'Packaging $(WIN32_INSTALLER_OUT).'
|
|
$(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
|
|
$(RM) -r $(STAGEDIST)/uninstall
|
|
$(NSINSTALL) -D $(STAGEDIST)/uninstall
|
|
cp ../installer/windows/l10ngen/helper.exe $(STAGEDIST)/uninstall
|
|
$(RM) $(ABS_DIST)/l10n-stage/setup.exe
|
|
cp ../installer/windows/l10ngen/setup.exe $(ABS_DIST)/l10n-stage
|
|
$(NSINSTALL) -D '$(ABS_DIST)/$(PKG_INST_PATH)'
|
|
(cd $(DIST)/l10n-stage; \
|
|
$(MAKE_PACKAGE))
|
|
mv -f '$(DIST)/l10n-stage/$(PACKAGE)' '$(WIN32_INSTALLER_OUT)'
|
|
if test -f '$(DIST)/l10n-stage/$(PACKAGE).asc'; then mv -f '$(DIST)/l10n-stage/$(PACKAGE).asc' '$(WIN32_INSTALLER_OUT).asc'; fi
|
|
ifdef MOZ_STUB_INSTALLER
|
|
$(RM) '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe'
|
|
cp ../installer/windows/l10ngen/stub.exe '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe'
|
|
chmod 0755 '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe'
|
|
endif
|
|
|
|
|
|
langpack: langpack-$(AB_CD)
|
|
|
|
# This is a generic target that will make a langpack, repack ZIP (+tarball)
|
|
# builds, and repack an installer if applicable. It is called from the
|
|
# tinderbox scripts. Alter it with caution.
|
|
|
|
installers-%: IS_LANGUAGE_REPACK=1
|
|
installers-%:
|
|
@$(MAKE) clobber-$*
|
|
@$(MAKE) libs-$*
|
|
@$(MAKE) package-langpack-$*
|
|
@$(MAKE) repackage-zip-$*
|
|
ifeq (WINNT,$(OS_ARCH))
|
|
@$(MAKE) package-win32-installer AB_CD=$* MOZ_PKG_FORMAT=SFX7Z
|
|
endif
|
|
@echo 'repackaging done'
|
|
|
|
ifdef MOZ_UPDATER
|
|
# Note that we want updater.ini to be in the top directory, not the browser/
|
|
# subdirectory, because that's where the updater is installed and runs.
|
|
libs:: $(call MERGE_FILE,updater/updater.ini) $(call mkdir_deps,$(DIST)/bin)
|
|
ifeq ($(OS_ARCH),WINNT)
|
|
cat $< $(srcdir)/../installer/windows/nsis/updater_append.ini | \
|
|
sed -e 's/^InfoText=/Info=/' -e 's/^TitleText=/Title=/' | \
|
|
sed -e 's/%MOZ_APP_DISPLAYNAME%/$(MOZ_APP_DISPLAYNAME)/' > \
|
|
$(FINAL_TARGET)/../updater.ini
|
|
else
|
|
cat $< | \
|
|
sed -e 's/^InfoText=/Info=/' -e 's/^TitleText=/Title=/' | \
|
|
sed -e 's/%MOZ_APP_DISPLAYNAME%/$(MOZ_APP_DISPLAYNAME)/' > \
|
|
$(FINAL_TARGET)/../updater.ini
|
|
endif
|
|
endif
|
|
|
|
ident:
|
|
@printf 'fx_revision '
|
|
@$(PYTHON) $(topsrcdir)/config/printconfigsetting.py \
|
|
$(STAGEDIST)/application.ini App SourceStamp
|
|
@printf 'buildid '
|
|
@$(PYTHON) $(topsrcdir)/config/printconfigsetting.py \
|
|
$(STAGEDIST)/application.ini App BuildID
|
|
|
|
# test target, depends on make package
|
|
# try to repack x-test, with just toolkit/defines.inc being there
|
|
l10n-check:: INNER_UNMAKE_PACKAGE=true
|
|
l10n-check::
|
|
$(RM) -rf x-test
|
|
$(NSINSTALL) -D x-test/toolkit
|
|
echo '#define MOZ_LANG_TITLE Just testing' > x-test/toolkit/defines.inc
|
|
@# ZIP_IN='$(ZIP_IN)' will pass down the *current* value of ZIP_IN, and
|
|
@# we do the same for WIN32_INSTALLER_IN, which are based on MOZ_SIMPLE_PACKAGE_NAME
|
|
@# not being reset, overwriting the value they would get with MOZ_SIMPLE_PACKAGE_NAME
|
|
@# reset.
|
|
$(MAKE) installers-x-test L10NBASEDIR='$(PWD)' \
|
|
ZIP_IN='$(ZIP_IN)' MOZ_SIMPLE_PACKAGE_NAME=
|
|
$(PYTHON) $(topsrcdir)/toolkit/mozapps/installer/unpack.py $(DIST)/l10n-stage/$(MOZ_PKG_DIR)$(_RESPATH)
|
|
cd $(DIST)/l10n-stage && test $$(cat $(MOZ_PKG_DIR)$(_RESPATH)/update.locale) = x-test
|