Fix makefile include order by using sort/wildcard.
The 'include' directive in GNU make supports wildcards, but their expansion has no defined sort order (GLOB_NOSORT is passed to glob()). Usually this doesn't matter. However, there is at least one case where it does make a difference: toolchain/*/*.mk includes both the definitions of the external toolchain packages and pkg-toolchain-external.mk, but pkg-toolchain-external.mk must be included first. For predictability, use ordered 'include $(sort $(wildcard ...))' instead of unordered direct 'include */*.mk' everywhere. Fixes [1] reported by Petr Vorel: make: *** No rule to make target 'toolchain-external-custom', needed by '.../build/toolchain-external/.stamp_configured'. Stop. [1] http://lists.busybox.net/pipermail/buildroot/2017-November/206969.html Signed-off-by: Peter Seiderer <ps.report@gmx.net> Tested-by: Petr Vorel <petr.vorel@gmail.com> [Arnout: also sort the one remaining include, of the external docs] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
ca4009fc24
commit
b9d2d4cb4e
8
Makefile
8
Makefile
@ -483,13 +483,13 @@ include system/system.mk
|
||||
include package/Makefile.in
|
||||
# arch/arch.mk.* must be after package/Makefile.in because it may need to
|
||||
# complement variables defined therein, like BR_NO_CHECK_HASH_FOR.
|
||||
-include $(wildcard arch/arch.mk.*)
|
||||
-include $(sort $(wildcard arch/arch.mk.*))
|
||||
include support/dependencies/dependencies.mk
|
||||
|
||||
PACKAGES += $(DEPENDENCIES_HOST_PREREQ)
|
||||
|
||||
include toolchain/*.mk
|
||||
include toolchain/*/*.mk
|
||||
include $(sort $(wildcard toolchain/*.mk))
|
||||
include $(sort $(wildcard toolchain/*/*.mk))
|
||||
|
||||
# Include the package override file if one has been provided in the
|
||||
# configuration.
|
||||
@ -1109,7 +1109,7 @@ print-version:
|
||||
./support/testing/run-tests -l 2>&1 | sed -r -e '/^test_run \((.*)\).*/!d; s//\1: *runtime_test/' | LC_ALL=C sort >> $@
|
||||
|
||||
include docs/manual/manual.mk
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
|
||||
|
||||
.PHONY: $(noconfig_targets)
|
||||
|
||||
|
@ -1 +1 @@
|
||||
include package/gstreamer/*/*.mk
|
||||
include $(sort $(wildcard package/gstreamer/*/*.mk))
|
||||
|
@ -1 +1 @@
|
||||
include package/gstreamer1/*/*.mk
|
||||
include $(sort $(wildcard package/gstreamer1/*/*.mk))
|
||||
|
@ -25,4 +25,4 @@ $(error No prefix selected for external toolchain package $(BR2_PACKAGE_PROVIDES
|
||||
endif
|
||||
endif
|
||||
|
||||
include toolchain/toolchain-external/*/*.mk
|
||||
include $(sort $(wildcard toolchain/toolchain-external/*/*.mk))
|
||||
|
Loading…
Reference in New Issue
Block a user