git: b6f69c39999b - main - release: Fix dependency ordering

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Wed, 08 Oct 2025 04:42:15 UTC
The branch main has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=b6f69c39999bfb85af262363b4fe22edc80027d7

commit b6f69c39999bfb85af262363b4fe22edc80027d7
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2025-10-07 20:48:06 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-08 04:42:10 +0000

    release: Fix dependency ordering
    
    The 'make release' command triggers some sub-builds, in particular
    'real-release' (which builds install images) and 'vm-release' (which
    builds VM images).  These both now depend on pkgbase-repo.
    
    Unfortunately for historical reasons 'make real-release' has used a
    recursive make instead of proper make dependencies; this results in
    the pkgbase-repo target being invoked twice since the recursive make
    does not have any awareness of the targets being run by the parent
    make command.  Since the pkgbase-repo target starts by creating the
    pkgbase-repo directory, the second make command incorrectly assumes
    that target has already been built; this showed up in 15.0-ALPHA5
    builds with pkgbase-repo.tar being empty as it was created after the
    pkgbase-repo directory was created by before that directory had been
    populated.
    
    Change
    real-release:
            make obj
            make ${RELEASE_TARGETS}
    to a single line
    real-release: obj .WAIT ${RELEASE_TARGETS}
    in order to handle dependency deduplication properly while keeping
    the intended behaviour that "obj" completes before ${RELEASE_TARGETS}.
    
    Diagnosed by:   jrtc27, emaste
    Reviewed by:    emaste
    MFC after:      1 day
    Sponsored by:   https://www.patreon.com/cperciva
    Differential Revision:  https://reviews.freebsd.org/D52972
---
 release/Makefile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/release/Makefile b/release/Makefile
index 12f5114f8b22..13532097d56c 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -448,9 +448,7 @@ release:	real-release vm-release cloudware-release oci-release
 release-done:
 	touch release
 
-real-release:
-	${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
-	${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
+real-release: obj .WAIT ${RELEASE_TARGETS}
 
 install:	release-install vm-install oci-install .WAIT cloud-install