Add a new target to touch the ${.OBJDIR}/release file, which
indicates the 'release' target has run (in order to prevent subsequent invocations that may clobber original build output). As is, the 'release' target is a dummy target that does nothing more than depend on subsequent targets. Unless 'make obj' is invoked prior to 'make release', .OBJDIR and .CURDIR will always be '/usr/src/release' (or wherever /usr/src is located). When 'make release' invokes 'make real-release' (and subsequent targets), .OBJDIR is not updated, which still leads to src/ tree pollution. While arguably a hack, 'make release' will invoke the original dummy targets as originally intended, but instead of touching an empty file (or returing @true), will call a 'release-done' target that will trigger the behavior that was intended to prevent a subsequent invocation. Discussed with: hrs MFC after: 3 days X-MFC-With: r293173 Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
a85f12322c
commit
fdbd473ce5
@ -281,7 +281,11 @@ ftp: packagesystem
|
||||
cp *.txz MANIFEST ftp
|
||||
|
||||
release: real-release vm-release cloudware-release
|
||||
touch ${.OBJDIR}/${.TARGET}
|
||||
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} release-done
|
||||
true
|
||||
|
||||
release-done:
|
||||
touch release
|
||||
|
||||
real-release:
|
||||
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
|
||||
|
Loading…
Reference in New Issue
Block a user