svn commit: r325414 - head/share/mk

Bryan Drewery bdrewery at FreeBSD.org
Sun Nov 5 00:12:00 UTC 2017


Author: bdrewery
Date: Sun Nov  5 00:11:58 2017
New Revision: 325414
URL: https://svnweb.freebsd.org/changeset/base/325414

Log:
  AUTO_OBJ: Set .OBJDIR=.CURDIR earlier for NO_OBJ Makefiles.
  
  auto.obj.mk is loaded before the Makefile which may have NO_OBJ set inside of
  it.  In that case we can't avoid creating the OBJDIR but we do need to avoid
  using it.  Fixing .OBJDIR in bsd.init.mk at least fixes all of the build .mk
  files to have a proper .OBJDIR.  It does not fix the Makefile itself but
  usually if they have NO_OBJ set they are not inspecting ${.OBJDIR} anyhow.
  
  It is ideal to only have this in bsd.init.mk and to remove it from bsd.obj.mk,
  but then bsd.obj.mk would need to include bsd.init.mk.  Doing something like
  that would require more testing.  It has been proposed that bsd.obj.mk not be
  included directly but it has been possible for too long to do so to change it
  at this point.
  
  Note too that it may make sense to fix .OBJDIR even when AUTO_OBJ is not
  enabled but the historical behavior has always been that NO_OBJ just avoids
  running 'make obj', so .OBJDIR should already be .CURDIR.
  
  Also while NO_OBJ seems like it should be removed at this point, it is not
  always possible to fix Makefiles to properly use an .OBJDIR.  The cost of
  keeping NO_OBJ support is minimal.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  head/share/mk/bsd.init.mk
  head/share/mk/bsd.obj.mk

Modified: head/share/mk/bsd.init.mk
==============================================================================
--- head/share/mk/bsd.init.mk	Sun Nov  5 00:11:55 2017	(r325413)
+++ head/share/mk/bsd.init.mk	Sun Nov  5 00:11:58 2017	(r325414)
@@ -10,6 +10,14 @@
 __<bsd.init.mk>__:
 .include <bsd.opts.mk>
 .-include "local.init.mk"
+
+.if ${MK_AUTO_OBJ} == "yes"
+# This is also done in bsd.obj.mk
+.if defined(NO_OBJ)
+.OBJDIR: ${.CURDIR}
+.endif
+.endif
+
 .if exists(${.CURDIR}/../Makefile.inc)
 .include "${.CURDIR}/../Makefile.inc"
 .endif

Modified: head/share/mk/bsd.obj.mk
==============================================================================
--- head/share/mk/bsd.obj.mk	Sun Nov  5 00:11:55 2017	(r325413)
+++ head/share/mk/bsd.obj.mk	Sun Nov  5 00:11:58 2017	(r325414)
@@ -47,6 +47,7 @@ __<bsd.obj.mk>__:
 objwarn:
 obj:
 CANONICALOBJDIR= ${.OBJDIR}
+# This is also done in bsd.init.mk
 .if defined(NO_OBJ)
 # but this makefile does not want it!
 .OBJDIR: ${.CURDIR}


More information about the svn-src-head mailing list