Index: head/tools/build/options/WITHOUT_BLACKLIST =================================================================== --- head/tools/build/options/WITHOUT_BLACKLIST (revision 313168) +++ head/tools/build/options/WITHOUT_BLACKLIST (revision 313169) @@ -1,2 +1,2 @@ .\" $FreeBSD$ -Set this if you do not want to build blacklistd / blacklistctl. +Set this if you do not want to build blacklistd/blacklistctl. Index: head/tools/build/options/WITHOUT_CLANG_BOOTSTRAP =================================================================== --- head/tools/build/options/WITHOUT_CLANG_BOOTSTRAP (revision 313168) +++ head/tools/build/options/WITHOUT_CLANG_BOOTSTRAP (revision 313169) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -Set to not build the Clang C/C++ compiler during the bootstrap phase of the build. -You must enable either gcc or clang bootstrap to be able to build the system, -unless an alternative compiler is provided via -XCC. +Set to not build the Clang C/C++ compiler during the bootstrap phase of +the build. +To be able to build the system, either gcc or clang bootstrap must be +enabled unless an alternate compiler is provided via XCC. Index: head/tools/build/options/WITHOUT_CROSS_COMPILER =================================================================== --- head/tools/build/options/WITHOUT_CROSS_COMPILER (revision 313168) +++ head/tools/build/options/WITHOUT_CROSS_COMPILER (revision 313169) @@ -1,13 +1,13 @@ .\" $FreeBSD$ Set to not build any cross compiler in the cross-tools stage of buildworld. -If you are compiling a different version of +When compiling a different version of .Fx -than what is installed on the system, you will need to provide an alternate +than what is installed on the system, provide an alternate compiler with XCC to ensure success. -If you are compiling with an identical version of +When compiling with an identical version of .Fx to the host, this option may be safely used. This option may also be safe when the host version of .Fx is close to the sources being built, but all bets are off if there have been any changes to the toolchain between the versions. Index: head/tools/build/options/WITHOUT_DIALOG =================================================================== --- head/tools/build/options/WITHOUT_DIALOG (revision 313168) +++ head/tools/build/options/WITHOUT_DIALOG (revision 313169) @@ -1,2 +1,7 @@ .\" $FreeBSD$ -Set to not build dialog(1), dialog(1,3), and dpv(1,3). +Set to not build +.Xr dialog 1 , +.Xr dialog 3 , +.Xr dpv 1 , +and +.Xr dpv 3 . Index: head/tools/build/options/WITHOUT_DMAGENT =================================================================== --- head/tools/build/options/WITHOUT_DMAGENT (revision 313168) +++ head/tools/build/options/WITHOUT_DMAGENT (revision 313169) @@ -1,2 +1,2 @@ .\" $FreeBSD$ -Set to not build dma Mail Transport Agent +Set to not build dma Mail Transport Agent. Index: head/tools/build/options/WITHOUT_DOCCOMPRESS =================================================================== --- head/tools/build/options/WITHOUT_DOCCOMPRESS (revision 313168) +++ head/tools/build/options/WITHOUT_DOCCOMPRESS (revision 313169) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Set to not to install compressed system documentation. +Set to not install compressed system documentation. Only the uncompressed version will be installed. Index: head/tools/build/options/WITHOUT_GPL_DTC =================================================================== --- head/tools/build/options/WITHOUT_GPL_DTC (revision 313168) +++ head/tools/build/options/WITHOUT_GPL_DTC (revision 313169) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Set to build the BSD licensed version of the device tree compiler, instead of the -GPL'd one from elinux.org. +Set to build the BSD licensed version of the device tree compiler rather +than the GPLed one from elinux.org. Index: head/tools/build/options/WITHOUT_INSTALLLIB =================================================================== --- head/tools/build/options/WITHOUT_INSTALLLIB (revision 313168) +++ head/tools/build/options/WITHOUT_INSTALLLIB (revision 313169) @@ -1,8 +1,8 @@ .\" $FreeBSD$ -Set this if you do not want to install optional libraries. -For example when creating a +Set this if to not install optional libraries. +For example, when creating a .Xr nanobsd 8 image. .Bf -symbolic The option does not work for build targets. .Ef Index: head/tools/build/options/WITHOUT_KERBEROS =================================================================== --- head/tools/build/options/WITHOUT_KERBEROS (revision 313168) +++ head/tools/build/options/WITHOUT_KERBEROS (revision 313169) @@ -1,2 +1,2 @@ .\" $FreeBSD$ -Set this if you do not want to build Kerberos 5 (KTH Heimdal). +Set this to not build Kerberos 5 (KTH Heimdal). Index: head/tools/build/options/WITH_CCACHE_BUILD =================================================================== --- head/tools/build/options/WITH_CCACHE_BUILD (revision 313168) +++ head/tools/build/options/WITH_CCACHE_BUILD (revision 313169) @@ -1,39 +1,39 @@ .\" $FreeBSD$ Set to use .Xr ccache 1 for the build. No configuration is required except to install the .Sy devel/ccache package. -Using with -.Xr distcc 1 -should set +When using with +.Xr distcc 1 , +set .Sy CCACHE_PREFIX=/usr/local/bin/distcc . The default cache directory of .Pa $HOME/.ccache will be used, which can be overridden by setting .Sy CCACHE_DIR . The .Sy CCACHE_COMPILERCHECK option defaults to .Sy content when using the in-tree bootstrap compiler, and .Sy mtime when using an external compiler. The .Sy CCACHE_CPP2 option is used for Clang but not GCC. .Pp Sharing a cache between multiple work directories requires using a layout similar to .Pa /some/prefix/src .Pa /some/prefix/obj and an environment such as: .Bd -literal -offset indent CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj' .Ed .Pp See .Xr ccache 1 for more configuration options. Index: head/tools/build/options/WITH_DIRDEPS_BUILD =================================================================== --- head/tools/build/options/WITH_DIRDEPS_BUILD (revision 313168) +++ head/tools/build/options/WITH_DIRDEPS_BUILD (revision 313169) @@ -1,35 +1,36 @@ .\" $FreeBSD$ This is an experimental build system. For details see http://www.crufty.net/sjg/docs/freebsd-meta-mode.htm. Build commands can be seen from the top-level with: .Dl make show-valid-targets 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 +.Xr make 1 recursively reads .Va DIRDEPS -from Makefile.depend +from +.Pa 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 +skips checking dirdep dependencies and will only build in the current and child directories. .Va NO_DIRDEPS_BELOW -will skip building any dirdeps and only build the current directory. +skips building any dirdeps and only build the current directory. .Pp This also utilizes the .Va WITH_META_MODE logic for incremental builds. .Pp -The build will hide commands ran unless +The build hides commands executed unless .Va NO_SILENT is defined. .Pp Note that there is currently no mass install feature for this. .Pp Index: head/tools/build/options/WITH_INSTALL_AS_USER =================================================================== --- head/tools/build/options/WITH_INSTALL_AS_USER (revision 313168) +++ head/tools/build/options/WITH_INSTALL_AS_USER (revision 313169) @@ -1,9 +1,9 @@ .\" $FreeBSD$ Set to make install targets succeed for non-root users by installing files with owner and group attributes set to that of the user running the .Xr make 1 command. -The user still has to set the +The user still must set the .Va DESTDIR variable to point to a directory where the user has write permissions. Index: head/tools/build/options/WITH_META_MODE =================================================================== --- head/tools/build/options/WITH_META_MODE (revision 313168) +++ head/tools/build/options/WITH_META_MODE (revision 313169) @@ -1,51 +1,51 @@ .\" $FreeBSD$ -Creates +Create .Xr make 1 meta files when building, which can provide a reliable incremental build when using .Xr filemon 4 . -The meta file is created in the OBJDIR as +The meta file is created in OBJDIR as .Pa target.meta . -These meta files track the command ran, its output, and the current directory. +These meta files track the command that was executed, its output, and the +current directory. The .Xr filemon 4 module is required unless .Va NO_FILEMON is defined. -When the module is loaded, any files used by the commands executed will be -tracked as -dependencies for the target in its meta file. -The target will be considered out-of-date and rebuilt if any of the following -are true compared to the last build: +When the module is loaded, any files used by the commands executed are +tracked as dependencies for the target in its meta file. +The target is considered out-of-date and rebuilt if any of these +conditions are true compared to the last build: .Bl -bullet -compact .It The command to execute changes. .It The current working directory changes. .It The target's meta file is missing. .It The target's meta file is missing filemon data when filemon is loaded and a previous run did not have it loaded. .It [requires .Xr filemon 4 ] Files read, executed or linked to are newer than the target. .It [requires .Xr filemon 4 ] Files read, written, executed or linked are missing. .El The meta files can also be useful for debugging. .Pp -The build will hide commands ran unless +The build hides commands that are executed unless .Va NO_SILENT is defined. -Errors will cause +Errors cause .Xr make 1 to show some of its environment for further debugging. .Pp The build operates as it normally would otherwise. This option originally invoked a different build system but that was renamed to .Va WITH_DIRDEPS_BUILD . Index: head/tools/build/options/WITH_STAGING_MAN =================================================================== --- head/tools/build/options/WITH_STAGING_MAN (revision 313168) +++ head/tools/build/options/WITH_STAGING_MAN (revision 313169) @@ -1,2 +1,2 @@ .\" $FreeBSD$ -Enable staging of MAN pages to stage tree. +Enable staging of man pages to stage tree. Index: head/tools/build/options/makeman =================================================================== --- head/tools/build/options/makeman (revision 313168) +++ head/tools/build/options/makeman (revision 313169) @@ -1,352 +1,353 @@ #!/bin/sh # # This file is in the public domain. set -o errexit export LC_ALL=C ident='$FreeBSD$' t=$(mktemp -d -t makeman) -trap 'test -d $t && rm -rf $t' exit +# trap 'test -d $t && rm -rf $t' exit srcdir=$(realpath ../../..) make="make -C $srcdir -m $srcdir/share/mk" # # usage: no_targets all_targets yes_targets # no_targets() { for t1 in $1 ; do for t2 in $2 ; do if [ "${t1}" = "${t2}" ] ; then continue 2 fi done echo ${t1} done } show_options() { ALL_TARGETS=$(echo $(${make} targets | tail -n +2)) rm -f $t/settings for target in ${ALL_TARGETS} ; do prev_opt= env -i ${make} showconfig \ SRC_ENV_CONF=/dev/null SRCCONF=/dev/null \ __MAKE_CONF=/dev/null \ TARGET_ARCH=${target#*/} TARGET=${target%/*} | while read var _ val ; do opt=${var#MK_} if [ $opt = "$prev_opt" ]; then echo "$target: ignoring duplicate option $opt" >&2 continue fi prev_opt=$opt case ${val} in yes) echo ${opt} ${target} ;; no) echo ${opt} ;; *) echo "make showconfig broken: ${var} ${_} ${val} (not yes or no)" >&2 exit 1 ;; esac done > $t/settings.target if [ -r $t/settings ] ; then join -t\ $t/settings $t/settings.target > $t/settings.new mv $t/settings.new $t/settings else mv $t/settings.target $t/settings fi done while read opt targets ; do if [ "${targets}" = "${ALL_TARGETS}" ] ; then echo "WITHOUT_${opt}" elif [ -z "${targets}" ] ; then echo "WITH_${opt}" else echo "WITHOUT_${opt}" $(no_targets "${ALL_TARGETS}" "${targets}") echo "WITH_${opt} ${targets}" fi done < $t/settings } # # usage: show { settings | with | without } ... # show() { mode=$1 ; shift case ${mode} in settings) yes_prefix=WITH no_prefix=WITHOUT ;; with) yes_prefix=WITH no_prefix=WITH ;; without) yes_prefix=WITHOUT no_prefix=WITHOUT ;; *) echo 'internal error' >&2 exit 1 ;; esac env -i ${make} .MAKE.MODE=normal "$@" showconfig __MAKE_CONF=/dev/null \ SRCCONF=/dev/null | while read var _ val ; do opt=${var#MK_} case ${val} in yes) echo ${yes_prefix}_${opt} ;; no) echo ${no_prefix}_${opt} ;; *) echo "make showconfig broken: ${var} ${_} ${val} (not yes or no)" >&2 exit 1 ;; esac done } main() { + echo "building src.conf.5 man page from files in ${PWD}" >&2 ident=${ident#$} ident=${ident% $} fbsdid='$'FreeBSD'$' cat < $t/config_default # Work around WITH_LDNS_UTILS forcing BIND_UTILS off by parsing the # actual config that results from enabling every WITH_ option. This # can be reverted if/when we no longer have options that disable # others. show with SRC_ENV_CONF=/dev/null | sort | sed 's/$/=/' > $t/src.conf show settings SRC_ENV_CONF=$t/src.conf | sort > $t/config_WITH_ALL show without SRC_ENV_CONF=/dev/null | sort > $t/config_WITHOUT_ALL env_only_options="$(${make} -V __ENV_ONLY_OPTIONS)" show_options | while read opt targets ; do if [ ! -f ${opt} ] ; then echo "no description found for ${opt}, skipping" >&2 continue fi echo ".It Va ${opt}" sed -e's/\$\(FreeBSD: .*\) \$/from \1/' ${opt} if [ -n "${targets}" ] ; then echo '.Pp' - echo 'It is a default setting on' + echo 'This is a default setting on' echo $(echo ${targets} | sed -e's/ /, /g' -e's/\(.*\), /\1 and /'). fi if [ "${opt%%_*}" = 'WITHOUT' ] ; then sed -n "/^WITH_${opt#WITHOUT_}$/!s/$/=/p" $t/config_WITH_ALL > $t/src.conf show settings SRC_ENV_CONF=$t/src.conf -D${opt} | sort > $t/config_WITH_ALL_${opt} comm -13 $t/config_WITH_ALL $t/config_WITH_ALL_${opt} | sed -n "/^${opt}$/!p" > $t/deps elif [ "${opt%%_*}" = 'WITH' ] ; then sed -n "/^WITHOUT${opt#WITH}$/!s/$/=/p" $t/config_WITHOUT_ALL > $t/src.conf show settings SRC_ENV_CONF=$t/src.conf -D${opt} | sort > $t/config_WITHOUT_ALL_${opt} comm -13 $t/config_WITHOUT_ALL $t/config_WITHOUT_ALL_${opt} | sed -n "/^${opt}$/!p" > $t/deps else echo 'internal error' >&2 exit 1 fi show settings SRC_ENV_CONF=/dev/null -D${opt} | sort > $t/config_${opt} comm -13 $t/config_default $t/config_${opt} | sed -n "/^${opt}$/!p" | comm -13 $t/deps - > $t/deps2 # Work around BIND_UTILS=no being the default when every WITH_ # option is enabled. if [ "$(cat $t/deps2)" = WITHOUT_BIND_UTILS ]; then sort $t/deps $t/deps2 > $t/_deps mv $t/_deps $t/deps :> $t/deps2 fi havedeps=0 if [ -s $t/deps ] ; then havedeps=1 - echo 'When set, it also enforces the following options:' + echo 'When set, it enforces these options:' echo '.Pp' echo '.Bl -item -compact' while read opt2 ; do echo '.It' echo ".Va ${opt2}" done < $t/deps echo '.El' fi if [ -s $t/deps2 ] ; then if [ ${havedeps} -eq 1 ] ; then echo '.Pp' fi - echo 'When set, the following options are also in effect:' + echo 'When set, these options are also in effect:' echo '.Pp' echo '.Bl -inset -compact' while read opt2 ; do echo ".It Va ${opt2}" noopt=$(echo ${opt2} | sed -e's/WITH_/WITHOUT_/;t' -e's/WITHOUT_/WITH_/') echo '(unless' echo ".Va ${noopt}" echo 'is set explicitly)' done < $t/deps2 echo '.El' fi case " ${env_only_options} " in *\ ${opt#*_}\ *) echo ".Pp" echo "This must be set in the environment, make command line, or" echo ".Pa /etc/src-env.conf ," echo "not" echo ".Pa /etc/src.conf ." ;; esac twiddle >&2 done cat <