c1e29f712e
- Pass __MAKE_CONF=/dev/null to get a pristine output.
191 lines
3.2 KiB
Bash
191 lines
3.2 KiB
Bash
#!/bin/sh
|
|
#
|
|
# This file is in the public domain.
|
|
|
|
ident='$FreeBSD$'
|
|
|
|
#
|
|
# usage: 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
|
|
(
|
|
cd ../../..
|
|
make "$@" showconfig SRCCONF=/dev/null __MAKE_CONF=/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" >/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
|
|
source code, which is usually located 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 regardless of their setting;
|
|
even if they would be set to
|
|
.Dq Li FALSE
|
|
or
|
|
.Dq Li NO .
|
|
Just the existence of an option will cause
|
|
it to be honoured by
|
|
.Xr make 1 .
|
|
.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
|
|
continue
|
|
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
|