]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
makefile: Fix recursive makes
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Wed, 22 Oct 2025 12:23:15 +0000 (15:23 +0300)
committerTom Rini <trini@konsulko.com>
Fri, 24 Oct 2025 19:47:10 +0000 (13:47 -0600)
Since the Kbuild bump to 5.1 and specifically
commit af1a9935708a ("kbuild: make -r/-R effective in top Makefile for old Make versions")
the recursion rules have changed.

'make O=/output/dir/' as well as './test/py/test.py --bd sandbox --build'
is working fine but anything that recursively called the makefile was
failing e.g 'make tests', 'make qcheck' etc, which calls a bash script
that ends up calling the makefile again.

The reason is that the internal 'sub_make_done' variable of the makefile
was set after the first pass and the output dir was never evaluated
properly.  Reset the variable value if we are executing any of these
tests.

Fixes: af1a9935708a ("kbuild: make -r/-R effective in top Makefile for old Make versions")
Reported-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Test-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Makefile

index 2402f9313d8bcd5f364737b03d04ce05984c92ae..8cddee3c5a965ed6cdf50e3a79a5c2f7447d7250 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2666,6 +2666,10 @@ help:
        @echo  'Execute "make" or "make all" to build all targets marked with [*] '
        @echo  'For further info see the ./README file'
 
+ifneq ($(filter tests pcheck qcheck tcheck,$(MAKECMDGOALS)),)
+export sub_make_done := 0
+endif
+
 tests check:
        $(srctree)/test/run