Author: gjb
Date: Wed Jan  6 05:23:25 2016
New Revision: 293231
URL: https://svnweb.freebsd.org/changeset/base/293231

Log:
  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

Modified:
  head/release/Makefile

Modified: head/release/Makefile
==============================================================================
--- head/release/Makefile       Wed Jan  6 00:52:55 2016        (r293230)
+++ head/release/Makefile       Wed Jan  6 05:23:25 2016        (r293231)
@@ -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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to