release: make dependencies, not recursive make

For historical reasons, the vm-release and cloudware-release targets
were written as recursive makes of ${VMTARGETS} and ${CLOUDTARGETS};
this worked fine until we started running `make release -jN` and
had both VM and cloud targets depending on ${QEMUTGT}, at which
point things exploded when we tried to build the port twice at the
same time.

Switch vm-release and cloudware-release to have make dependencies on
their individual components; this way a single make process runs and
is aware of the duplicate dependency (and only runs it once).

MFC after:	5 days
This commit is contained in:
Colin Percival 2024-05-09 00:52:25 -07:00
parent c2a005a0a9
commit ce7756fdca

View File

@ -223,14 +223,16 @@ vm-install:
${DESTDIR}/vmimages/CHECKSUM.SHA256 ${DESTDIR}/vmimages/CHECKSUM.SHA256
.endif .endif
vm-release:
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${VMTARGETS} vm-release: ${VMTARGETS}
.else
vm-release:
.endif .endif
cloudware-release:
.if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE) && !empty(CLOUDWARE) .if defined(WITH_CLOUDWARE) && !empty(WITH_CLOUDWARE) && !empty(CLOUDWARE)
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${CLOUDTARGETS} cloudware-release: ${CLOUDTARGETS}
.else
cloudware-release:
.endif .endif
.include "${.CURDIR}/Makefile.azure" .include "${.CURDIR}/Makefile.azure"