https://github.com/mozilla/gecko-dev
Raw File
Tip revision: e9c54f30578a876f45deb9a45122237c5e5ebff0 authored by B2G Bumper Bot on 11 May 2015, 18:33:08 UTC
Bumping manifests a=b2g-bump
Tip revision: e9c54f3
Makefile.in
# -*- 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/.

#####################################################################################
# Dependency build overhead:
#   o always create/update/hard link targets boomkarks.json & searchplugins
#   o latest symlink will be correct for the current locale / local build.
#   o logic is essentially FORCE for language packs w/o all the build overhead
#   o phase 2: replace hard links with a user function able to derive path
#     based on current locale.
#####################################################################################

include $(topsrcdir)/config/config.mk

USE_AUTOTARGETS_MK=1
include $(topsrcdir)/config/makefiles/makeutils.mk

# Separate items of contention
tgt-gendir = .deps/generated_$(AB_CD)

GENERATED_DIRS += .deps

ifdef LOCALE_MERGEDIR
vpath book%.inc $(LOCALE_MERGEDIR)/mobile/profile
endif
vpath book%.inc $(LOCALE_SRCDIR)/profile
ifdef LOCALE_MERGEDIR
vpath book%.inc @srcdir@/en-US/profile
endif

$(call errorIfEmpty,MOZ_BRANDING_DIRECTORY)
SUBMAKEFILES += \
        $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/Makefile \
        $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales/Makefile \
        $(NULL)

###########################################################################
# Default target, preserve existing functionality for:
#    gmake -C $obj/mobile/locales
###########################################################################
search-jar-default: search-jar


###########################################################################
bookmarks     = bookmarks.json
bookmarks-ts  = $(tgt-gendir)/$(bookmarks)
src-bookmarks = $(srcdir)/generic/profile/$(bookmarks).in

GARBAGE += $(bookmarks) $(bookmarks-ts)
# ---------------------------------------------------------------------------
# Note: Always symlink bookmarks.json to pickup the current build for a
#       locale.  Phase 2 edits should remove the common/symlink file and
#       provide a user function able to derive the path.
###########################################################################

## Searchlist plugin config
plugin-file-array = \
  $(wildcard $(LOCALE_SRCDIR)/searchplugins/list.txt) \
  $(srcdir)/en-US/searchplugins/list.txt \
  $(NULL)

###########################################################################
plugin_source_file = $(firstword $(plugin-file-array))
plugin_file = overrides/list_$(AB_CD).txt
plugin-file-ts = $(tgt-gendir)/$(subst $(topsrcdir)/,$(NULL),$(plugin_file)).ts

GARBAGE += $(plugin-file-ts)
# ---------------------------------------------------------------------------
# plugin-file-ts track searchlist file used ($path/list.txt)
# and time when the file was last modified.
###########################################################################
plugin-file-ts-preqs = \
  $(call mkdir_deps,$(dir $(plugin-file-ts))) \
  $(plugin_file) \
  $(NULL)

###########################################################################
# Detect locale changes.  Force stale deps when searchlist file
# or content has changed.
$(plugin-file-ts): $(plugin-file-ts-preqs)
	@touch $@


###########################################################################
search-jar-common = tmp-search.jar.mn
search-jar        = $(tgt-gendir)/$(search-jar-common)
search-jar-ts     = $(search-jar).ts

GARBAGE += $(search-jar) $(search-jar-ts) $(search-jar-common)
# ---------------------------------------------------------------------------
# search-jar contains a list of providers for the search plugin
###########################################################################

search-jar-preqs = \
  $(plugin-file-ts) \
  $(if $(IS_LANGUAGE_REPACK),FORCE) \
  $(GLOBAL_DEPS) \
  $(NULL)

# These locales will have the additional search plugins listed in
# extra_search_plugins merged into their set of search plugins.
extra_search_plugin_locales := \
  de \
  en-GB \
  en-US \
  es-ES \
  es-MX \
  fr \
  $(NULL)

# These additional search plugins will be merged into the set of search plugins
# for each locale listed in extra_search_plugin_locales.
extra_search_plugins := \
  duckduckgo \
  $(NULL)

# Take the set of locale specified search plugins, possible add extra search
# plugins, sort, and then make unique.  The order of search plugins is not
# important: we order the top plugins using region.properties and then sort the
# remainder alphabetically.
$(plugin_file): $(plugin_source_file) $(call mkdir_deps,$(dir $(plugin_file)))
	(cat $(plugin_source_file);\
		$(if $(filter $(AB_CD),$(extra_search_plugin_locales)),\
			$(foreach plugin,$(extra_search_plugins),echo $(plugin);))\
	) | sort -u > $@

.PHONY: search-jar
search-jar: $(search-jar)
$(search-jar): $(search-jar-preqs)
	@echo '\nGenerating: search-jar'
	echo '$(AB_CD).jar:' > $@
	ln -fn $@ .
	$(foreach plugin,$(shell cat $(plugin_file)),\
		echo " locale/$(AB_CD)/browser/searchplugins/$(plugin).xml ($(plugin).xml)" >> $@;)
	echo " locale/$(AB_CD)/browser/searchplugins/list.txt ($(plugin_file))" >> $@

###################
search-dir-deps = \
  $(plugin-file) \
  $(dir-chrome) \
  $(NULL)

search-preqs =\
  $(call mkdir_deps,$(dir $(search-jar-ts))) \
  $(call mkdir_deps,$(FINAL_TARGET)/chrome) \
  $(search-jar) \
  $(search-dir-deps) \
  $(if $(IS_LANGUAGE_REPACK),FORCE) \
  $(GLOBAL_DEPS) \
  $(NULL)

.PHONY: searchplugins
searchplugins: $(search-preqs)
	$(call py_action,jar_maker,\
          $(QUIET) -j $(FINAL_TARGET)/chrome \
          -s $(topsrcdir)/$(relativesrcdir)/en-US/searchplugins \
          -s $(LOCALE_SRCDIR)/searchplugins \
          $(MAKE_JARS_FLAGS) $(search-jar))
	$(TOUCH) $@

include $(topsrcdir)/config/rules.mk


#############
libs-preqs =\
  $(call mkdir-deps,$(DIST)/install) \
  $(NULL)

libs-%: $(libs-preqs)
	$(display-deps)
	@$(MAKE) -C $(DEPTH)/toolkit/locales libs-$*
	@$(MAKE) -C $(DEPTH)/intl/locales AB_CD=$* XPI_NAME=locale-$*
	@$(MAKE) -B $(bookmarks) AB_CD=$*
	@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref
	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*

# Tailored target to just add the chrome processing for multi-locale builds
chrome-%:
	$(display-deps)
	@$(MAKE) -B $(bookmarks) AB_CD=$*
	@$(MAKE) -B searchplugins AB_CD=$*
	@$(MAKE) chrome AB_CD=$*
	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*

NO_JA_JP_MAC_AB_CD := $(if $(filter ja-JP-mac, $(AB_CD)),ja,$(AB_CD))


# emulate vpath to gather deps with a path
has-mergedir = $(if $(strip $(LOCALE_MERGEDIR)),1)
bookmarks-inc-array = \
  $(wildcard \
    $(if $(has_mergedir),$(LOCALE_MERGEDIR)/mobile/profile/bookmarks.inc) \
    $(LOCALE_SRCDIR)/profile/bookmarks.inc \
    $(if $(has-mergedir),$(srcdir)/en-US/profile/bookmarks.inc) \
  )
bookmarks-inc = $(firstword $(bookmarks-inc-array))

bookmarks-preqs = \
  $(bookmarks-inc) \
  $(src-bookmarks) \
  generic/profile/$(bookmarks).in \
  $(if $(IS_LANGUAGE_REPACK),FORCE) \
  $(GLOBAL_DEPS) \
  $(NULL)

$(bookmarks-ts): $(bookmarks-preqs)
	$(display_deps)
	$(call py_action,preprocessor, \
      -I $< \
      -DAB_CD=$(NO_JA_JP_MAC_AB_CD) \
      $(src-bookmarks) \
      -o $@)

.PHONY: bookmarks $(bookmarks)
bookmarks: $(bookmarks)
$(bookmarks): $(bookmarks-ts)
	@echo '\nGenerating: $@'
	ln -fn $< .


export:: searchplugins bookmarks
back to top