summaryrefslogtreecommitdiffstats
path: root/release/Makefile
diff options
context:
space:
mode:
authorgjb <gjb@FreeBSD.org>2016-01-06 05:23:25 +0000
committergjb <gjb@FreeBSD.org>2016-01-06 05:23:25 +0000
commit35c3347b0a722840298b52cdbb7abfc66fea7a87 (patch)
tree2b7f61e67bc4787e32d032a96ec62a222a8362fc /release/Makefile
parenta6cc4bb03ba02bda535f6c553c36fbe393defb2e (diff)
downloadFreeBSD-src-35c3347b0a722840298b52cdbb7abfc66fea7a87.zip
FreeBSD-src-35c3347b0a722840298b52cdbb7abfc66fea7a87.tar.gz
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
Diffstat (limited to 'release/Makefile')
-rw-r--r--release/Makefile6
1 files changed, 5 insertions, 1 deletions
diff --git a/release/Makefile b/release/Makefile
index 07b8048..ba1ca80 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -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
OpenPOWER on IntegriCloud