summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorapb <apb@NetBSD.org>2012-11-04 11:02:11 +0000
committerapb <apb@NetBSD.org>2012-11-04 11:02:11 +0000
commitbcb3824f5b960f9ebc7254ed65820bf6f97a2e6e (patch)
treeb191b836c58a5fc8cfda6d5f5e5a4f26742e7c03 /Makefile
parentf85db2bc962ee93f365a7822889576a4d8c9f10e (diff)
Create a "params" file in the top-level .OBJDIR during "make build".
This file will contain the values of all variables that can affect the build process. Take care not to update the file's timestamp if the contents do not change. ${_SRC_TOP_OBJ}/params is referenced by ${_NETBSD_VERSION_DEPENDS} in bsd.own.mk. Rename the old "params" target to "show-params". This simply prints the values of the variables that can affect the build.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 25 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f632dd6673e..f4d8983df38 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.299 2012/08/17 16:22:27 joerg Exp $
+# $NetBSD: Makefile,v 1.300 2012/11/04 11:02:11 apb Exp $
#
# This is the top-level makefile for building NetBSD. For an outline of
@@ -87,6 +87,8 @@
# do-top-obj: creates the top level object directory.
# do-tools-obj: creates object directories for the host toolchain.
# do-tools: builds host toolchain.
+# params: record the values of variables that might affect the
+# build.
# obj: creates object directories.
# do-distrib-dirs: creates the distribution directories.
# includes: installs include files.
@@ -222,6 +224,7 @@ BUILDTARGETS+= do-tools-obj
.endif
BUILDTARGETS+= do-tools
.endif # USETOOLS # }
+BUILDTARGETS+= params
.if ${MKOBJDIRS} != "no"
BUILDTARGETS+= obj
.endif
@@ -252,6 +255,26 @@ includes-lib: .PHONY includes-include includes-sys
includes-gnu: .PHONY includes-lib
#
+# Record the values of variables that might affect the build.
+# If no values have changed, avoid updating the timestamp
+# of the params file.
+#
+# This is referenced by _NETBSD_VERSION_DEPENDS in <bsd.own.mk>.
+#
+
+CLEANDIRFILES+= params
+params: .EXEC
+ ${_MKMSG_CREATE} params
+ @(${MAKEDIRTARGET:S/^@//} etc params) >${.TARGET}.new
+ @if cmp -s ${.TARGET}.new ${.TARGET} > /dev/null 2>&1; then \
+ : "params is unchanged" ; \
+ rm ${.TARGET}.new ; \
+ else \
+ : "params has changed or is new" ; \
+ mv ${.TARGET}.new ${.TARGET} ; \
+ fi
+
+#
# Build the system and install into DESTDIR.
#
@@ -508,5 +531,5 @@ dependall-distrib depend-distrib all-distrib: .PHONY
#
# Display current make(1) parameters
#
-params: .PHONY .MAKE
+show-params: .PHONY .MAKE
${MAKEDIRTARGET} etc params