svn commit: r284708 - in head: share/man/man5 share/mk tools/build/options

Simon J. Gerraty sjg at FreeBSD.org
Mon Jun 22 20:22:02 UTC 2015


Author: sjg
Date: Mon Jun 22 20:21:57 2015
New Revision: 284708
URL: https://svnweb.freebsd.org/changeset/base/284708

Log:
  Fix generation of src.conf.5
  
  Since makeman turns all options on, we need to guard somethings from
  make(showconfig)

Added:
  head/tools/build/options/WITH_AUTO_OBJ   (contents, props changed)
  head/tools/build/options/WITH_DIRDEPS_CACHE   (contents, props changed)
  head/tools/build/options/WITH_META_FILES   (contents, props changed)
  head/tools/build/options/WITH_META_MODE   (contents, props changed)
  head/tools/build/options/WITH_STAGING   (contents, props changed)
  head/tools/build/options/WITH_STAGING_MAN   (contents, props changed)
  head/tools/build/options/WITH_STAGING_PROG   (contents, props changed)
  head/tools/build/options/WITH_STALE_STAGED   (contents, props changed)
  head/tools/build/options/WITH_SYSROOT   (contents, props changed)
Modified:
  head/share/man/man5/src.conf.5
  head/share/mk/local.meta.sys.mk
  head/tools/build/options/makeman

Modified: head/share/man/man5/src.conf.5
==============================================================================
--- head/share/man/man5/src.conf.5	Mon Jun 22 19:43:08 2015	(r284707)
+++ head/share/man/man5/src.conf.5	Mon Jun 22 20:21:57 2015	(r284708)
@@ -1,7 +1,7 @@
 .\" DO NOT EDIT-- this file is automatically generated.
 .\" from FreeBSD: head/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des
 .\" $FreeBSD$
-.Dd June 11, 2015
+.Dd June 22, 2015
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -126,6 +126,9 @@ Set to not build
 Set to not build
 .Xr autofs 4
 related programs, libraries, and kernel modules.
+.It Va WITH_AUTO_OBJ
+.\" $FreeBSD$
+Enable automatic creation of objdirs.
 .It Va WITHOUT_BHYVE
 .\" from FreeBSD: head/tools/build/options/WITHOUT_BHYVE 277727 2015-01-26 06:44:48Z ngie
 Set to not build or install
@@ -392,6 +395,12 @@ and are located automatically by
 .It Va WITHOUT_DICT
 .\" from FreeBSD: head/tools/build/options/WITHOUT_DICT 156932 2006-03-21 07:50:50Z ru
 Set to not build the Webster dictionary files.
+.It Va WITH_DIRDEPS_CACHE
+.\" $FreeBSD$
+Cache result of dirdeps.mk which can save significant time
+for subsequent builds.
+Depends on
+.Va WITH_META_MODE .
 .It Va WITHOUT_DMAGENT
 .\" from FreeBSD: head/tools/build/options/WITHOUT_DMAGENT 262335 2014-02-22 13:05:23Z bapt
 Set to not build dma Mail Transport Agent
@@ -851,6 +860,56 @@ Set to not build utilities for manual pa
 .Xr whatis 1 ,
 .Xr manctl 8 ,
 and related support files.
+.It Va WITH_META_FILES
+.\" $FreeBSD$
+Create meta files during non META_MODE build.
+The meta files can be useful for debugging.
+.It Va WITH_META_MODE
+.\" $FreeBSD$
+Enable building in meta mode.
+.Pp
+The build is driven by dirdeps.mk using 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 make recursively reads DIRDEPS from Makefile.depend
+computing a graph of tree dependencies from the current origin.
+See http://www.crufty.net/help/sjg/dirdeps.htm
+.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 syscalls
+used to produce the target.
+When set, it also enforces the following options:
+.Pp
+.Bl -item -compact
+.It
+.Va WITH_AUTO_OBJ
+.It
+.Va WITH_INSTALL_AS_USER
+.It
+.Va WITH_STAGING
+.It
+.Va WITH_SYSROOT
+.El
+.Pp
+When set, the following options are also in effect:
+.Pp
+.Bl -inset -compact
+.It Va WITH_STAGING_MAN
+(unless
+.Va WITHOUT_STAGING_MAN
+is set explicitly)
+.It Va WITH_STAGING_PROG
+(unless
+.Va WITHOUT_STAGING_PROG
+is set explicitly)
+.El
 .It Va WITH_NAND
 .\" from FreeBSD: head/tools/build/options/WITH_NAND 235537 2012-05-17 10:11:18Z gber
 Set to build the NAND Flash components.
@@ -1093,6 +1152,35 @@ Set to not build kernel modules that inc
 .It Va WITHOUT_SSP
 .\" from FreeBSD: head/tools/build/options/WITHOUT_SSP 180012 2008-06-25 21:33:28Z ru
 Set to not build world with propolice stack smashing protection.
+.It Va WITH_STAGING
+.\" $FreeBSD$
+Enable staging of files to a stage tree.
+This can be best thought of as auto-install to
+.Va DESTDIR
+with some extra meta data to ensure dependencies can be tracked.
+Depends on
+.Va WITH_META_MODE .
+When set, the following options are also in effect:
+.Pp
+.Bl -inset -compact
+.It Va WITH_STAGING_MAN
+(unless
+.Va WITHOUT_STAGING_MAN
+is set explicitly)
+.It Va WITH_STAGING_PROG
+(unless
+.Va WITHOUT_STAGING_PROG
+is set explicitly)
+.El
+.It Va WITH_STAGING_MAN
+.\" $FreeBSD$
+Enable staging of MAN pages to stage tree.
+.It Va WITH_STAGING_PROG
+.\" $FreeBSD$
+Enable staging of PROGs to stage tree.
+.It Va WITH_STALE_STAGED
+.\" $FreeBSD$
+Check staged files are not stale.
 .It Va WITH_SVN
 .\" from FreeBSD: head/tools/build/options/WITH_SVN 252561 2013-07-03 12:36:47Z zeising
 Set to install
@@ -1117,6 +1205,11 @@ support files such as keyboard maps, fon
 Set to not build
 .Xr sysinstall 8
 and related programs.
+.It Va WITH_SYSROOT
+.\" $FreeBSD$
+Enable use of sysroot during build.
+Depends on
+.Va WITH_META_MODE .
 .It Va WITHOUT_TALK
 .\" from FreeBSD: head/tools/build/options/WITHOUT_TALK 277676 2015-01-25 04:37:44Z ngie
 Set to not build or install

Modified: head/share/mk/local.meta.sys.mk
==============================================================================
--- head/share/mk/local.meta.sys.mk	Mon Jun 22 19:43:08 2015	(r284707)
+++ head/share/mk/local.meta.sys.mk	Mon Jun 22 20:21:57 2015	(r284708)
@@ -8,6 +8,7 @@
 MK_INSTALL_AS_USER= yes
 
 .if empty(OBJROOT) || ${.MAKE.LEVEL} == 0
+.if !make(showconfig)
 .if defined(MAKEOBJDIRPREFIX) && exists(${MAKEOBJDIRPREFIX})
 .warning MAKEOBJDIRPREFIX not supported; setting MAKEOBJDIR...
 # put things approximately where they want
@@ -20,6 +21,7 @@ MAKEOBJDIRPREFIX=
 # now for our own use
 MAKEOBJDIR= ${.CURDIR:S,${SRCTOP},${OBJTOP},}
 .endif
+.endif
 .if !empty(SB)
 SB_OBJROOT ?= ${SB}/obj/
 # this is what we use below

Added: head/tools/build/options/WITH_AUTO_OBJ
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_AUTO_OBJ	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Enable automatic creation of objdirs.

Added: head/tools/build/options/WITH_DIRDEPS_CACHE
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_DIRDEPS_CACHE	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,5 @@
+.\" $FreeBSD$
+Cache result of dirdeps.mk which can save significant time
+for subsequent builds.
+Depends on
+.Va WITH_META_MODE .

Added: head/tools/build/options/WITH_META_FILES
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_META_FILES	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,3 @@
+.\" $FreeBSD$
+Create meta files during non META_MODE build.
+The meta files can be useful for debugging.

Added: head/tools/build/options/WITH_META_MODE
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_META_MODE	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,20 @@
+.\" $FreeBSD$
+Enable building in meta mode.
+.Pp
+The build is driven by dirdeps.mk using 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 make recursively reads DIRDEPS from Makefile.depend
+computing a graph of tree dependencies from the current origin.
+See http://www.crufty.net/help/sjg/dirdeps.htm
+.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 syscalls
+used to produce the target.

Added: head/tools/build/options/WITH_STAGING
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_STAGING	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,7 @@
+.\" $FreeBSD$
+Enable staging of files to a stage tree.
+This can be best thought of as auto-install to
+.Va DESTDIR
+with some extra meta data to ensure dependencies can be tracked.
+Depends on
+.Va WITH_META_MODE .

Added: head/tools/build/options/WITH_STAGING_MAN
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_STAGING_MAN	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Enable staging of MAN pages to stage tree.

Added: head/tools/build/options/WITH_STAGING_PROG
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_STAGING_PROG	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Enable staging of PROGs to stage tree.

Added: head/tools/build/options/WITH_STALE_STAGED
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_STALE_STAGED	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Check staged files are not stale.

Added: head/tools/build/options/WITH_SYSROOT
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_SYSROOT	Mon Jun 22 20:21:57 2015	(r284708)
@@ -0,0 +1,4 @@
+.\" $FreeBSD$
+Enable use of sysroot during build.
+Depends on
+.Va WITH_META_MODE .

Modified: head/tools/build/options/makeman
==============================================================================
--- head/tools/build/options/makeman	Mon Jun 22 19:43:08 2015	(r284707)
+++ head/tools/build/options/makeman	Mon Jun 22 20:21:57 2015	(r284708)
@@ -46,7 +46,7 @@ show_options()
 				echo ${opt}
 				;;
 			*)
-				echo "make showconfig broken: ${val} is not yes or no" >&2
+				echo "make showconfig broken: ${var} ${_} ${val} (not yes or no)" >&2
 				exit 1
 				;;
 			esac
@@ -96,7 +96,7 @@ show()
 		exit 1
 		;;
 	esac
-	${make} "$@" showconfig __MAKE_CONF=/dev/null |
+	${make} .MAKE.MODE=normal "$@" showconfig __MAKE_CONF=/dev/null |
 	while read var _ val ; do
 		opt=${var#MK_}
 		case ${val} in
@@ -107,7 +107,7 @@ show()
 			echo ${no_prefix}_${opt}
 			;;
 		*)
-			echo "make showconfig broken: ${val} is not yes or no" >&2
+			echo "make showconfig broken: ${var} ${_} ${val} (not yes or no)" >&2
 			exit 1
 			;;
 		esac


More information about the svn-src-all mailing list