summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2006-03-21 09:05:42 +0000
committerru <ru@FreeBSD.org>2006-03-21 09:05:42 +0000
commit22df825526bd7f560503bbbc7fede40224643790 (patch)
tree5aff1a273c2e5b9963780ebfa59544c70ec078fc /tools
parent11e33ba6db83b1130ce42b3b8d6fc2d48d4b39fd (diff)
downloadFreeBSD-src-22df825526bd7f560503bbbc7fede40224643790.zip
FreeBSD-src-22df825526bd7f560503bbbc7fede40224643790.tar.gz
A tool to generate the src.conf(5) manpage.
Diffstat (limited to 'tools')
-rw-r--r--tools/build/options/makeman185
1 files changed, 185 insertions, 0 deletions
diff --git a/tools/build/options/makeman b/tools/build/options/makeman
new file mode 100644
index 0000000..910f138
--- /dev/null
+++ b/tools/build/options/makeman
@@ -0,0 +1,185 @@
+#!/bin/sh
+#
+# This file is in the public domain.
+
+ident='$FreeBSD$'
+
+#
+# show settings | options
+#
+show()
+{
+
+ mode=$1; shift
+ case ${mode} in
+ settings)
+ yes_prefix=WITH
+ no_prefix=WITHOUT
+ ;;
+ options)
+ yes_prefix=WITHOUT
+ no_prefix=WITH
+ ;;
+ *)
+ echo "internal error" >/dev/stderr
+ exit 1
+ ;;
+ esac
+ make "$@" -f ../../../share/mk/bsd.own.mk SRCCONF=/dev/null -V_ -dg1 |
+ grep ^MK_ |sort |
+ 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" >/dev/stderr
+ exit 1
+ ;;
+ esac
+ done
+}
+
+main()
+{
+
+ trap 'rm -f _config _config2 _deps' exit
+ ident=${ident#$}
+ ident=${ident% $}
+ fbsdid='$FreeBSD$'
+ cat <<EOF
+.\" DO NOT EDIT-- this file is automatically generated.
+.\" from ${ident}
+.\" ${fbsdid}
+.Dd $(LC_TIME=C date +'%B %e, %Y')
+.Dt SRC.CONF 5
+.Os
+.Sh NAME
+.Nm src.conf
+.Nd source build options
+.Sh DESCRIPTION
+The
+.Nm
+file contains settings that will apply to every build involving the
+.Fx
+source tree; see
+.Xr build 7 .
+.Pp
+The
+.Nm
+file uses the standard makefile syntax.
+However,
+.Nm
+should not specify any dependencies to
+.Xr make 1 .
+Instead,
+.Nm
+is to set
+.Xr make 1
+variables that control the aspects of how the system builds.
+.Pp
+The default location of
+.Nm
+is
+.Pa /etc/src.conf ,
+though an alternative location can be specified in the
+.Xr make 1
+variable
+.Va SRCCONF .
+Overriding the location of
+.Nm
+maybe necessary if the system-wide settings are not suitable
+for a particular build.
+For instance, setting
+.Va SRCCONF
+to
+.Pa /dev/null
+effectively resets all build controls to their defaults.
+.Pp
+The only purpose of
+.Nm
+is to control the compilation of the
+.Fx
+sources, which are usually found in
+.Pa /usr/src .
+As a rule, the system administrator creates
+.Nm
+when the values of certain control variables need to be changed
+from their defaults.
+.Pp
+In addition, control variables can be specified
+for a particular build via the
+.Fl D
+option of
+.Xr make 1
+or in environment; see
+.Xr environ 7 .
+.Pp
+The values of variables are ignored; the variable being
+set at all (even to
+.Dq Li FALSE
+or
+.Dq Li NO )
+causes it to be treated as if it was set with no value.
+.Pp
+The following list provides a name and short description for variables
+that can be used for source builds.
+.Bl -tag -width indent
+EOF
+ show settings |sort >_config
+ show options |
+ while read opt; do
+ if [ -f ${opt} ]; then
+ cat <<EOF
+.It Va ${opt}
+EOF
+ sed -e's/\$\(FreeBSD: .*\) \$/from \1/' ${opt}
+ else
+ echo "no description found for ${opt}, skipping" >/dev/stderr
+ fi
+ show settings -D${opt} |sort >_config2
+ comm -13 _config _config2 |grep -v "^${opt}$" >_deps
+ if [ -s _deps ]; then
+ cat <<EOF
+When set, it also enforces the following options:
+.Pp
+.Bl -item -compact
+EOF
+ cat _deps |while read opt2; do
+ cat <<EOF
+.It
+.Va ${opt2}
+EOF
+ done
+ cat <<EOF
+.El
+EOF
+ fi
+ done
+ cat <<EOF
+.El
+.Sh FILES
+.Bl -tag -compact
+.It Pa /etc/src.conf
+.It Pa /usr/share/mk/bsd.own.mk
+.El
+.Sh SEE ALSO
+.Xr make 1 ,
+.Xr make.conf 5 ,
+.Xr build 7 ,
+.Xr ports 7
+.Sh HISTORY
+The
+.Nm
+file appeared in
+.Fx 7.0 .
+.Sh AUTHORS
+This manual page was autogenerated.
+EOF
+}
+
+main
OpenPOWER on IntegriCloud