]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
AUTO_OBJ: Set .OBJDIR=.CURDIR earlier for NO_OBJ Makefiles.
authorBryan Drewery <bdrewery@FreeBSD.org>
Sun, 5 Nov 2017 00:11:58 +0000 (00:11 +0000)
committerBryan Drewery <bdrewery@FreeBSD.org>
Sun, 5 Nov 2017 00:11:58 +0000 (00:11 +0000)
commitaba77ddd8a41d3f1f87d87f15df1db6d89933f0d
tree1f6a19c53a65f3713f93d254c37dd9e564dfd193
parent2f4c7d14c8f3caf90dee81f7641176eecc52d2ff
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
share/mk/bsd.init.mk
share/mk/bsd.obj.mk