Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Nov 2015 03:24:48 +0000 (UTC)
From:      "Simon J. Gerraty" <sjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r290816 - in head: . include share/mk tools/build/options usr.bin/xlint/llib
Message-ID:  <201511140324.tAE3Omno039525@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sjg
Date: Sat Nov 14 03:24:48 2015
New Revision: 290816
URL: https://svnweb.freebsd.org/changeset/base/290816

Log:
  Rename META_MODE option to DIRDEPS_BUILD
  
  This allows META_FILES option to be renamed META_MODE.
  Also add META_COOKIE_TOUCH for use in targets that can benefit
  from a cookie when in meta mode.
  
  Differential Revision:	https://reviews.freebsd.org/D4153
  Reviewed by:	bdrewery

Added:
  head/tools/build/options/WITH_DIRDEPS_BUILD
     - copied unchanged from r290801, head/tools/build/options/WITH_META_MODE
Replaced:
  head/tools/build/options/WITH_META_MODE
     - copied, changed from r290801, head/tools/build/options/WITH_META_FILES
Deleted:
  head/tools/build/options/WITH_META_FILES
Modified:
  head/Makefile
  head/include/Makefile
  head/share/mk/bsd.dep.mk
  head/share/mk/bsd.subdir.mk
  head/share/mk/local.meta.sys.mk
  head/share/mk/local.sys.mk
  head/share/mk/sys.mk
  head/tools/build/options/WITH_DIRDEPS_CACHE
  head/tools/build/options/WITH_STAGING
  head/tools/build/options/WITH_SYSROOT
  head/usr.bin/xlint/llib/Makefile

Modified: head/Makefile
==============================================================================
--- head/Makefile	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/Makefile	Sat Nov 14 03:24:48 2015	(r290816)
@@ -106,7 +106,7 @@
 
 # Note: we use this awkward construct to be compatible with FreeBSD's
 # old make used in 10.0 and 9.2 and earlier.
-.if defined(MK_META_MODE) && ${MK_META_MODE} == "yes" && !make(showconfig)
+.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig)
 # targets/Makefile plays the role of top-level
 .include "targets/Makefile"
 .else
@@ -498,15 +498,15 @@ buildLINT:
 # This makefile does not run in meta mode
 .MAKE.MODE= normal
 # Normally the things we run from here don't either.
-# Using -DWITH_META_FILES
+# Using -DWITH_META_MODE
 # we can buildworld with meta files created which are useful 
 # for debugging, but without any of the rest of a meta mode build.
-MK_META_MODE= no
+MK_DIRDEPS_BUILD= no
 MK_STAGING= no
 # tell meta.autodep.mk to not even think about updating anything.
 UPDATE_DEPENDFILE= NO
 .if !make(showconfig)
-.export MK_META_MODE MK_STAGING UPDATE_DEPENDFILE
+.export MK_DIRDEPS_BUILD MK_STAGING UPDATE_DEPENDFILE
 .endif
 
 .if make(universe)
@@ -516,4 +516,4 @@ MAKE_JOB_ERROR_TOKEN= no
 .endif
 .endif # bmake
 
-.endif				# META_MODE
+.endif				# DIRDEPS_BUILD

Modified: head/include/Makefile
==============================================================================
--- head/include/Makefile	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/include/Makefile	Sat Nov 14 03:24:48 2015	(r290816)
@@ -166,7 +166,7 @@ compat:
 	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \
 	    -f ${.CURDIR}/../etc/mtree/BSD.include.dist \
 	    -p ${DESTDIR}${INCLUDEDIR} > /dev/null
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 	@touch ${.TARGET}
 .endif
 
@@ -255,7 +255,7 @@ copies:
 	cd ${.CURDIR}/../sys/teken; \
 	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 teken.h \
 	    ${DESTDIR}${INCLUDEDIR}/teken
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 	@touch ${.OBJDIR}/${.TARGET}
 .endif
 
@@ -372,7 +372,7 @@ symlinks:
 		ln -fs ../../../sys/rpc/$$h \
 		    ${DESTDIR}${INCLUDEDIR}/rpc; \
 	done
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 	@touch ${.OBJDIR}/${.TARGET}
 .endif
 

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/share/mk/bsd.dep.mk	Sat Nov 14 03:24:48 2015	(r290816)
@@ -163,7 +163,7 @@ beforedepend: ${DHDRS}
 beforebuild: ${DHDRS}
 .endif
 
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 .include <meta.autodep.mk>
 # this depend: bypasses that below
 # the dependency helps when bootstrapping

Modified: head/share/mk/bsd.subdir.mk
==============================================================================
--- head/share/mk/bsd.subdir.mk	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/share/mk/bsd.subdir.mk	Sat Nov 14 03:24:48 2015	(r290816)
@@ -49,7 +49,7 @@ STANDALONE_SUBDIR_TARGETS?= obj checkdpa
 .include <bsd.init.mk>
 
 .if !defined(NEED_SUBDIR)
-.if ${.MAKE.LEVEL} == 0 && ${MK_META_MODE} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*))
+.if ${.MAKE.LEVEL} == 0 && ${MK_DIRDEPS_BUILD} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*))
 .include <meta.subdir.mk>
 # ignore this
 _SUBDIR:

Modified: head/share/mk/local.meta.sys.mk
==============================================================================
--- head/share/mk/local.meta.sys.mk	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/share/mk/local.meta.sys.mk	Sat Nov 14 03:24:48 2015	(r290816)
@@ -2,7 +2,7 @@
 
 # local configuration specific to meta mode
 # XXX some of this should be in meta.sys.mk
-# we assume that MK_META_MODE=yes
+# we assume that MK_DIRDEPS_BUILD=yes
 
 # we need this until there is an alternative
 MK_INSTALL_AS_USER= yes

Modified: head/share/mk/local.sys.mk
==============================================================================
--- head/share/mk/local.sys.mk	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/share/mk/local.sys.mk	Sat Nov 14 03:24:48 2015	(r290816)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 MAKE_PRINT_VAR_ON_ERROR+= \
 	.CURDIR \
 	.MAKE \
@@ -23,3 +23,15 @@ MAKE_PRINT_VAR_ON_ERROR += .MAKE.MAKEFIL
 .endif
 
 .include "src.sys.mk"
+
+.if ${.MAKE.MODE:Unormal:Mmeta*} != ""
+# we can afford to use cookies to prevent some targets
+# re-running needlessly
+META_COOKIE_TOUCH= touch ${COOKIE.${.TARGET}:U${.OBJDIR}/${.TARGET}}
+# some targets need to be .PHONY - but not in meta mode
+META_NOPHONY=
+.else
+META_COOKIE_TOUCH=
+META_NOPHONY= .PHONY
+.endif
+

Modified: head/share/mk/sys.mk
==============================================================================
--- head/share/mk/sys.mk	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/share/mk/sys.mk	Sat Nov 14 03:24:48 2015	(r290816)
@@ -20,14 +20,14 @@ MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n3
 # Some options we need now
 __DEFAULT_NO_OPTIONS= \
 	DIRDEPS_CACHE \
+	DIRDEPS_BUILD \
 	META_MODE \
-	META_FILES \
 
 
 __DEFAULT_DEPENDENT_OPTIONS= \
-	AUTO_OBJ/META_MODE \
-	STAGING/META_MODE \
-	SYSROOT/META_MODE
+	AUTO_OBJ/DIRDEPS_BUILD \
+	STAGING/DIRDEPS_BUILD \
+	SYSROOT/DIRDEPS_BUILD
 
 __ENV_ONLY_OPTIONS:= \
 	${__DEFAULT_NO_OPTIONS} \
@@ -43,9 +43,9 @@ __ENV_ONLY_OPTIONS:= \
 
 .include <bsd.mkopt.mk>
 
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 .sinclude <meta.sys.mk>
-.elif ${MK_META_FILES} == "yes" && defined(.MAKEFLAGS)
+.elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS)
 .if ${.MAKEFLAGS:M-B} == ""
 .MAKE.MODE= meta verbose
 .endif

Copied: head/tools/build/options/WITH_DIRDEPS_BUILD (from r290801, head/tools/build/options/WITH_META_MODE)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_DIRDEPS_BUILD	Sat Nov 14 03:24:48 2015	(r290816, copy of r290801, head/tools/build/options/WITH_META_MODE)
@@ -0,0 +1,37 @@
+.\" $FreeBSD$
+Enable building in meta mode.
+This is an experimental build feature.
+For details see
+http://www.crufty.net/sjg/docs/freebsd-meta-mode.htm.
+.Pp
+The build is driven by dirdeps.mk using
+.Va DIRDEPS
+stored in
+Makefile.depend files found in each directory.
+.Pp
+The build can be started from anywhere, and behaves the same.
+The initial instance of
+.Xr make 1 
+recursively reads
+.Va DIRDEPS
+from Makefile.depend
+computing a graph of tree dependencies from the current origin.
+Setting
+.Va NO_DIRDEPS
+will skip checking dirdep dependencies and will only build in the current
+directory.
+.Pp
+As each target is made
+.Xr make 1
+produces a meta file which is used to capture (and compare)
+the command line,
+as well as any command output.
+If
+.Xr filemon 4
+is available the meta file will also capture a record of files
+used to produce the target by tracking syscalls.
+.Pp
+The build will hide commands ran unless
+.Va NO_SILENT
+is defined.
+.Pp

Modified: head/tools/build/options/WITH_DIRDEPS_CACHE
==============================================================================
--- head/tools/build/options/WITH_DIRDEPS_CACHE	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/tools/build/options/WITH_DIRDEPS_CACHE	Sat Nov 14 03:24:48 2015	(r290816)
@@ -2,4 +2,4 @@
 Cache result of dirdeps.mk which can save significant time
 for subsequent builds.
 Depends on
-.Va WITH_META_MODE .
+.Va WITH_DIRDEPS_BUILD .

Copied and modified: head/tools/build/options/WITH_META_MODE (from r290801, head/tools/build/options/WITH_META_FILES)
==============================================================================
--- head/tools/build/options/WITH_META_FILES	Fri Nov 13 20:25:30 2015	(r290801, copy source)
+++ head/tools/build/options/WITH_META_MODE	Sat Nov 14 03:24:48 2015	(r290816)
@@ -1,3 +1,3 @@
 .\" $FreeBSD$
-Create meta files during non META_MODE build.
+Create meta files when not doing DIRDEPS_BUILD.
 The meta files can be useful for debugging.

Modified: head/tools/build/options/WITH_STAGING
==============================================================================
--- head/tools/build/options/WITH_STAGING	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/tools/build/options/WITH_STAGING	Sat Nov 14 03:24:48 2015	(r290816)
@@ -4,4 +4,4 @@ This can be best thought of as auto-inst
 .Va DESTDIR
 with some extra meta data to ensure dependencies can be tracked.
 Depends on
-.Va WITH_META_MODE .
+.Va WITH_DIRDEPS_BUILD .

Modified: head/tools/build/options/WITH_SYSROOT
==============================================================================
--- head/tools/build/options/WITH_SYSROOT	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/tools/build/options/WITH_SYSROOT	Sat Nov 14 03:24:48 2015	(r290816)
@@ -1,4 +1,4 @@
 .\" $FreeBSD$
 Enable use of sysroot during build.
 Depends on
-.Va WITH_META_MODE .
+.Va WITH_DIRDEPS_BUILD .

Modified: head/usr.bin/xlint/llib/Makefile
==============================================================================
--- head/usr.bin/xlint/llib/Makefile	Sat Nov 14 03:22:59 2015	(r290815)
+++ head/usr.bin/xlint/llib/Makefile	Sat Nov 14 03:24:48 2015	(r290816)
@@ -16,6 +16,6 @@ llib-lstdc.ln: llib-lstdc
 
 .include <bsd.prog.mk>
 
-.if ${MK_META_MODE} == "yes"
+.if ${MK_DIRDEPS_BUILD} == "yes"
 LINTFLAGS+= -I${STAGE_INCLUDEDIR}
 .endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201511140324.tAE3Omno039525>