Bug 1439742 - Pre: Lift AB_rCD to ambient Make environment. r=ted.mielczarek

I wanted to lift this next to the definition of AB_CD, but that
doesn't allow to use it in a backend.mk file, due to the order in
which Makefile, config.mk, rules.mk, and backend.mk are processed.
Therefore, I've put it in a tiny include file, so that it can be used
by a Makefile and a backend.mk file.

This allows the `RecursiveMake` backend to owning defining AB_rCD in
backend.mk files, while not requiring consumers to arrange for AB_rCD
in a sibling Makefile.in file.

Other build backends will need to arrange for AB_rCD themselves: see
following commits.

MozReview-Commit-ID: I7GIzRbCCtf

--HG--
extra : rebase_source : 3277fedb43bc3d8007287c223554a085dae2f198
extra : source : 854c0f43a1f74b4e22aa7638b407580240c90dd5
This commit is contained in:
Nick Alexander 2018-02-20 12:28:21 -08:00
Родитель d6d04d1afc
Коммит 28bdb5086a
3 изменённых файлов: 27 добавлений и 8 удалений

20
config/AB_rCD.mk Normal file
Просмотреть файл

@ -0,0 +1,20 @@
# 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/.
# Turn 'en-US' into '' and general 'ab-CD' into '-ab-rCD' -- note
# leading hyphen.
#
# For example, 'res{AB_rCD}' is 'res' for 'en-US' and 'res-en-rGB' for
# 'en-GB'.
#
# Some locale codes are special, namely 'he' and 'id'. See
# http://code.google.com/p/android/issues/detail?id=3639.
#
# This is for use in Android resource directories, which uses a
# somewhat non-standard resource naming scheme for localized
# resources: see
# https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources.
# Android 24+ uses the standard BCP-47 naming scheme, and Bug 1441305
# tracks migrating to that naming scheme.
AB_rCD = $(if $(filter en-US,$(AB_CD)),,-$(if $(filter he, $(AB_CD)),iw,$(if $(filter id, $(AB_CD)),in,$(subst -,-r,$(AB_CD)))))

Просмотреть файл

@ -338,6 +338,9 @@ sysinstall_cmd = install_cmd
# MOZ_UI_LOCALE directly, but use an intermediate variable that can be
# overridden by the command line. (Besides, AB_CD is prettier).
AB_CD = $(MOZ_UI_LOCALE)
include $(topsrcdir)/config/AB_rCD.mk
# Many locales directories want this definition.
ACDEFINES += -DAB_CD=$(AB_CD)

Просмотреть файл

@ -2,11 +2,7 @@
# 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
# special case some locale codes, he and id
# http://code.google.com/p/android/issues/detail?id=3639
AB_rCD = $(if $(filter he, $(AB_CD)),iw,$(if $(filter id, $(AB_CD)),in,$(subst -,-r,$(AB_CD))))
include $(topsrcdir)/config/AB_rCD.mk
SYNCSTRINGSPATH = $(abspath $(call MERGE_FILE,sync_strings.dtd))
STRINGSPATH = $(abspath $(call MERGE_FILE,android_strings.dtd))
@ -31,9 +27,9 @@ libs realchrome:: \
chrome-%:: AB_CD=$*
chrome-%::
@$(MAKE) \
$(dir-res-values)-$(AB_rCD)/strings.xml \
$(dir-res-raw)-$(AB_rCD)/suggestedsites.json \
$(dir-res-raw)-$(AB_rCD)/browsersearch.json \
../res/values$(AB_rCD)/strings.xml \
../res/raw$(AB_rCD)/suggestedsites.json \
../res/raw$(AB_rCD)/browsersearch.json \
AB_CD=$*
# Determine the ../res/values[-*]/ path