![Peter Seiderer](/assets/img/avatar_default.png)
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>
29 lines
1 KiB
Makefile
29 lines
1 KiB
Makefile
################################################################################
|
|
#
|
|
# toolchain-external
|
|
#
|
|
################################################################################
|
|
|
|
TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO
|
|
|
|
# musl does not provide an implementation for sys/queue.h or sys/cdefs.h.
|
|
# So, add the musl-compat-headers package that will install those files,
|
|
# into the staging directory:
|
|
# sys/queue.h: header from NetBSD
|
|
# sys/cdefs.h: minimalist header bundled in Buildroot
|
|
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
|
|
TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers
|
|
endif
|
|
|
|
$(eval $(virtual-package))
|
|
|
|
# Ensure the external-toolchain package has a prefix defined.
|
|
# This comes after the virtual-package definition, which checks the provider.
|
|
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
|
|
ifeq ($(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)),)
|
|
$(error No prefix selected for external toolchain package $(BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL). Configuration error)
|
|
endif
|
|
endif
|
|
|
|
include $(sort $(wildcard toolchain/toolchain-external/*/*.mk))
|