Port Bug 912292 - Always traverse sub-directories after executing rules in the current directory. r=build system peer port of m-c patch,a=bustage-fix
This commit is contained in:
Родитель
82e29d5c77
Коммит
c1efdd2920
|
@ -0,0 +1,37 @@
|
|||
# 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/.
|
||||
|
||||
ifndef INCLUDED_RULES_MK
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
endif
|
||||
|
||||
#########################
|
||||
# Tier traversal handling
|
||||
#########################
|
||||
|
||||
define CREATE_SUBTIER_TRAVERSAL_RULE
|
||||
PARALLEL_DIRS_$(1) = $$(addsuffix _$(1),$$(PARALLEL_DIRS))
|
||||
|
||||
.PHONY: $(1) $$(PARALLEL_DIRS_$(1))
|
||||
|
||||
ifdef PARALLEL_DIRS
|
||||
$$(PARALLEL_DIRS_$(1)): %_$(1): %/Makefile
|
||||
+@$$(call SUBMAKE,$(1),$$*)
|
||||
endif
|
||||
|
||||
$(1):: $$(SUBMAKEFILES)
|
||||
ifdef PARALLEL_DIRS
|
||||
+@$(MAKE) $$(PARALLEL_DIRS_$(1))
|
||||
endif
|
||||
$$(LOOP_OVER_DIRS)
|
||||
|
||||
endef
|
||||
|
||||
$(foreach subtier,export libs tools,$(eval $(call CREATE_SUBTIER_TRAVERSAL_RULE,$(subtier))))
|
||||
|
||||
export:: $(SUBMAKEFILES)
|
||||
$(LOOP_OVER_TOOL_DIRS)
|
||||
|
||||
tools:: $(SUBMAKEFILES)
|
||||
$(foreach dir,$(TOOL_DIRS),$(call SUBMAKE,libs,$(dir)))
|
|
@ -705,30 +705,6 @@ ifneq (,$(DIRS)$(TOOL_DIRS)$(PARALLEL_DIRS))
|
|||
$(LOOP_OVER_TOOL_DIRS)
|
||||
endif
|
||||
|
||||
ifdef PARALLEL_DIRS
|
||||
export:: $(PARALLEL_DIRS_export)
|
||||
|
||||
$(PARALLEL_DIRS_export): %_export: %/Makefile
|
||||
+@$(call SUBMAKE,export,$*)
|
||||
endif
|
||||
|
||||
export:: $(SUBMAKEFILES) $(MAKE_DIRS)
|
||||
$(LOOP_OVER_DIRS)
|
||||
$(LOOP_OVER_TOOL_DIRS)
|
||||
|
||||
ifdef PARALLEL_DIRS
|
||||
tools:: $(PARALLEL_DIRS_tools)
|
||||
|
||||
$(PARALLEL_DIRS_tools): %_tools: %/Makefile
|
||||
+@$(call SUBMAKE,tools,$*)
|
||||
endif
|
||||
|
||||
tools:: $(SUBMAKEFILES) $(MAKE_DIRS)
|
||||
$(LOOP_OVER_DIRS)
|
||||
ifneq (,$(strip $(TOOL_DIRS)))
|
||||
$(foreach dir,$(TOOL_DIRS),$(call SUBMAKE,libs,$(dir)))
|
||||
endif
|
||||
|
||||
#
|
||||
# Rule to create list of libraries for final link
|
||||
#
|
||||
|
|
Загрузка…
Ссылка в новой задаче