186 lines
3.1 KiB
Plaintext
186 lines
3.1 KiB
Plaintext
|
#!/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
|