From mwm@mired.org  Tue Nov  7 17:26:40 2000
Return-Path: <mwm@mired.org>
Received: from guru.mired.org (okc-27-149-77.mmcable.com [24.27.149.77])
	by hub.freebsd.org (Postfix) with SMTP id A002337B4CF
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  7 Nov 2000 17:26:36 -0800 (PST)
Received: (qmail 9529 invoked by uid 100); 8 Nov 2000 01:26:36 -0000
Message-Id: <20001108012636.9528.qmail@guru.mired.org>
Date: 8 Nov 2000 01:26:36 -0000
From: mwm@mired.org
Reply-To: mwm@mired.org
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: No man pages for Make.conf or /usr/src/sys/Makefile
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         22676
>Category:       docs
>Synopsis:       No man pages for Make.conf or /usr/src/sys/Makefile
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    freebsd-doc
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 07 17:30:10 PST 2000
>Closed-Date:    Wed Nov 22 14:11:43 GMT 2000
>Last-Modified:  Wed Nov 22 14:12:05 GMT 2000
>Originator:     Mike Meyer
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
Meyer consulting
>Environment:
System: FreeBSD guru.mired.org 5.0-CURRENT FreeBSD 5.0-CURRENT #1: Sat Nov 4 19:39:06 CST 2000 root@:/usr/obj/sharetmp/src/sys/GURU i386

>Description:

In a fit (of some kind), I wrote man pages for make.conf and and
build. Jkh took a look, and said:

From: Jordan Hubbard <jkh@winston.osd.bsdi.com>
To: Mike Meyer <mwm@mired.org>
Subject: Re: make.conf man page? 
Date: Tue, 07 Nov 2000 13:59:32 -0800

Look good to me, submit 'em as PRs so somebody from the docs team can
commit them.  I'm too busy with 4.2 to even contemplate it at the
moment. :)


>How-To-Repeat:

Try "man make.conf" or "man build".

>Fix:

Commit the two man pages in the attached shar file.

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	manpages
#	manpages/make.conf.5
#	manpages/build.7
#
echo c - manpages
mkdir -p manpages > /dev/null 2>&1
echo x - manpages/make.conf.5
sed 's/^X//' >manpages/make.conf.5 << 'END-of-manpages/make.conf.5'
X.\" Copyright (c) 2000
X.\"	Mike W. Meyer
X.\"
X.\" Redistribution and use in source and binary forms, with or without
X.\" modification, are permitted provided that the following conditions
X.\" are met:
X.\" 1. Redistributions of source code must retain the above copyright
X.\"    notice, this list of conditions and the following disclaimer.
X.\" 2. Redistributions in binary form must reproduce the above copyright
X.\"    notice, this list of conditions and the following disclaimer in the
X.\"    documentation and/or other materials provided with the distribution.
X.\"
X.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
X.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
X.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
X.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
X.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
X.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
X.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
X.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
X.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
X.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
X.\" SUCH DAMAGE.
X.\"
X.\" $FreeBSD:$
X.\"
X.Dd Nov 3, 2000
X.Dt MAKE.CONF 5
X.Os
X.Sh NAME
X.Nm make.conf
X.Nd system build information.
X.Sh DESCRIPTION
XThe file
X.Nm
Xcontains settings that control the compilation of the FreeBSD sources
Xand ported applications. The file 
X.Nm
Xis generally created by the system administrator when the values need
Xto be changed from their defaults.
X.Pp
XThe purpose of
X.Nm
Xis not to run commands or perform compilation actions
Xdirectly.  Instead, it is included by the
Xvarious makefiles in
X.Pa /usr/src,
X.Pa /usr/ports
Xand
X.Pa /usr/doc
Xwhich conditionalize their
Xinternal actions according to the settings found there.
X.Pp
XThe
X.Pa /etc/make.conf
Xfile is included from the the appropriate Makefile
Xwhich specifies the default settings for all the available options.
XOptions need only be specified in 
X.Pa /etc/make.conf
Xwhen the system administrator wishes to override these defaults.
X.Pp
XThe build procedures occur in four broad areas: the world, the kernel,
Xdocumentations and ports. Variables set in
X.Nm
Xmay be applicable during builds in one, two, or all four of these
Xareas. They may be specified for a particular build via the
X.Op -D
Xoption of
X.Xr make 1 .
X.Pp
XThe following lists provides a name and short description for each
Xvariable you can use during the indicated builds. The values of
Xvariables flagged as
Xbool
Xare ignored; the variable being
Xset at all (even to 
X.Li Dq FALSE
Xor
X.Li Dq NO )
Xcause it to
Xbe treated as if it were set.
X.Pp
XThe following list provides a name and short description for variables
Xthat are used for all builds, or are used by the
Xmakefiles for things other than builds.
X.Bl -tag -width Ar
X.It Ar CFLAGS
X(str) Controls the compiler setting when compiling C code.
XOptimization levels above
X.Op -O ( -O2 , ...)
Xare not supported. BDECFLAGS
Xis provided as a set of gcc settings suggested by Bruce Evans
Xfor developgin and testing changs. They can be used by:
X.Bd -literal -offset indent
XCXFLAGS+=${BDECFLAGS}
X.Ed
X.It Ar CVS_UPDATE
X(bool) Set this to use cvs to update your ports with
X.Cm "make update" .
X.It Ar CXXFLAGS
X(str) Controls the compiler settings when compiling C++ code.
XCXXFLAGS is initially set to the value of CFLAGS. If you want to
Xadd to the CXXFLAGS value, use 
X.Dq Li +=
Xinstead of
X.Dq Li = .
X.It Ar INSTALL
X(str) the default install command. To have commands compared before doing
Xthe install, use
X.Bd -literal -offset indent
XINSTALL="install -C"
X.Ed
X.It Ar LOCAL_DIRS
X(str) List any directories that should be entered when doing
Xmake's in
X.Pa /usr/src 
Xin this variable.
X.It Ar MTREE_FOLLOWS_SYMLINKS
X(str) Set this to
X.Dq Li -L
Xto cause mtree to follow symlinks.
X.It Ar NO_DOCUPDATE
X(bool) Set this to not update the doc tree during
X.Cm "make update" .
X.It Ar NO_PORTSUPDATE
X(bool) Set this to not update the ports tree during
X.Cm "make update" .
X.It Ar SUP_UPDATE
X(bool) Set this to use cvsup to update your ports with
X.Cm "make update" .
X.It Ar SUP
X(str) The location of the cvsup command for
X.Cm "make update" .
X.It Ar SUPFLAGS
X(str) The flag for the sup command when doing
X.Cm "make update" .
XThis defaults to 
X.Op "-g -L 2" .
X.It Ar SUPHOST
X(str) The hostname of the sup server to use when doing
X.Cm "make update" .
X.It Ar SUPFILE
X(str) The first supfile to use when doing a
X.Cm "make update" .
XThis defaults to
X.Pa /usr/share/examples/cvsup/standard-supfile .
X.It Ar SUPFILE1
X(str) The second supfile to use when doing a
X.Cm "make update" .
XThis defaults to
X.Pa /usr/share/examples/cvsup/secure-supfile .
X.It Ar SUPFILE2
X(str) The third supfile to use when doing a
X.Cm "make update" .
XThis defaults to
X.Pa /usr/share/examples/cvsup/secure-supfile .
X.It Ar PORTSSUPFILE
X(str) The ports supfile to use when doing a
X.Cm "make update" .
XThis defaults to
X.Pa /usr/share/examples/cvsup/ports-supfile .
X.It Ar DOCSUPFILE
X(str) The documentation supfile to use when doing a
X.Cm "make update" .
XThis defaults to
X.Pa /usr/share/examples/cvsup/doc-supfile .
X.El
X.Pp
XThe following list provides a name and short description for variables
Xthat are only used doing a kernel build:
X.Bl -tag -width Ar
X.It Ar BOOT_COMCONSOLE_PORT
X(str) The port address to use for the console if the boot blocks have
Xbeen configured to use a serial console instead of the keyboard/video card.
X.It Ar BOOT_COMCONSOLE_SPEED
X(int) The baud rate to use for the console if the boot blocks have
Xbeen configured to use a serial console instead of the keyboard/video card.
X.It Ar BOOTWAIT
X(int) Controls the amount of time the kernel waits for a console keypress
Xbefore booting the default kernel. The value is approximately
Xmilliseconds. Keypresses are accepted by the BIOS before booting from disk,
Xmaking it possible to give custom boot parameters even when this is
Xset to 0.
X.It Ar COPTFLAGS
X(str) Controls the compiler settings when building the
Xkernel. Optimization levels above
X.Op -O 
X.Op -O2 ,
X...) are not supported.
X.It Ar NO_KERNELCONFIG
X(bool) Set this to skip running
X.Xr config 8
Xduring
X.Cm "${MAKE} buildkernel" .
X.It Ar NO_KERNELDEPEND
X(bool) Set this to skip running 
X.Cm "${MAKE} depend"
Xduring
X.Cm "${MAKE} buildkernel" .
X.It Ar NO_MODULES
X(bool) Set to  not build modules with the kernel.
X.El
X.Pp
XThe following list provides a name and short description for variables
Xthat are used during the world build:
X.Bl -tag -width Ar
X.It Ar COMPAT1X
X(bool) Set to install the 
X.Fx
X1 compatibility libraries.
X.It Ar COMPAT20
X(bool) Set to install the
X.Fx 2.0
Xcompatibility libraries.
X.It Ar COMPAT21
X(bool) Set to install the
X.Fx 2.1
Xcompatibility libraries.
X.It Ar COMPAT22
X(bool) Set to install the
X.Fx 2.2
Xcompatibility libraries.
X.It Ar COMPAT3X
X(bool) Set to install the
X.Fx
X3 compatibility libraries.
X.It Ar ENABLE_SUIDPERL
X(bool) Set to enable the installation of an suid perl binary.
X.It Ar FETCH_CMD
X(str) Command to use to fetch files. Normally
X.Xr fetch 1 .
X.It Ar MAKE_IDEA
X(bool) Set to build the IDEA encryption code. This code is patented in
Xthe USA and many european countries. It is 
X.Em "YOUR RESPONSIBILITY"
Xto determine if you can legally use IDEA.
X.It Ar MAKE_KERBEROS4
X(bool) Set this to build KerberosIV (KTH eBones).
X.It Ar MAKE_KERBEROS5
X(bool) Set this to build Kerberos5 (KTH Heimdal).
X.Em WARNING!
XThis is still experimental code. If you need stable Kerberos5, use the
Xport(s).
X.It Ar MODULES_WITH_WORLD
X(bool) Set to build modules with the system instead of the kernel.
X.It Ar NO_CVS
X(bool) Set to not build CVS.
X.It Ar NO_BIND
X(bool) Set to  not build BIND.
X.It Ar NO_FORTRAN
X(bool) Set to  not build g77 and related libraries.
X.It Ar NO_LPR
X(bool) Set to  not build lpr and related programs.
X.It Ar NO_MAILWRAPPER
X(bool) Set to  not build the mailwrapper(8) MTA selector.
X.It Ar NO_MAKEDEV
X(bool) Set to avoid running MAKEDEV all on /dev during install.
X.It Ar NO_OBJC
X(bool) Set to  not build Objective C support.
X.It Ar NO_OPENSSH
X(bool) Set to  not build OpenSSH.
X.It Ar NO_OPENSSL
X(bool) Set to  not build OpenSSL (implies NO_OPENSSH).
X.It Ar NO_SENDMAIL
X(bool) Set to  not build sendmail and related programs.
X.It Ar NO_SHAREDOCS
X(bool) Set to  not build the 4.4BSD legacy docs.
X.It Ar NO_TCSH
X(bool) Set to  not build and install /bin/csh (which is tcsh).
X.It Ar NO_X
X(bool) Set to  not compile in XWindows support (e.g. doscmd).
X.It Ar NOCLEAN
X(bool) Set this to disable cleaning during
X.Cm "make buildworld" .
XThis should not be set unless you know what you are doing.
X.It Ar NOCLEANDIR
X(bool) Set this to run
X.Cm "${MAKE} clean"
Xinstead of
X.Cm "${MAKE} cleandir" .
X.It Ar NOCRYPT
X(bool) Set to not build any crypto code.
X.It Ar NODESCRYPTLINKS
X(bool) Set to not replace 
X.Pa libcrypt -> libscrypt
Xlinks.
X.It Ar NOGAMES
X(bool) Set to not build games.
X.It Ar NOINFO
X(bool) Set to not make or install info files.
X.It Ar NOLIBC_R
X(bool) Set to not build libc_r (re-entrant version of libc).
X.It Ar NOMANCOMPRESS
X(bool) Set to install man pages uncompressed.
X.It Ar NOPERL
X(bool) Set to avoid building perl.
X.It Ar NOPROFILE
X(bool) Set to avoid compiling profiled libraries.
X.It Ar NOSECURE
X(bool) set to not build crypto code in secure subdir.
X.It Ar NOSHARE
X(bool) Set to not build in the share subdir.
X.It Ar NOUUCP
X(bool) Set to not build uucp related programs.
X.It Ar PERL_THREADED
X(bool) Set to enable the building and installation of perl with thread
Xsupport.
X.It Ar PPP_NOSUID
X(bool) Set to disable the installation of ppp as an suid root program.
X.It Ar SENDMAIL_CFLAGS
X(str) Flags to pass to the compile command when building sendmail. The
Xsendmail flags can be used to provide SASL support with setting such as:
X.Bd -literal -offset indent
XSENDMAIL_CFLAGS=-I/usr/local/include -DSASL
XSENDMAIL_LDFLAGS=-L/usr/local/lib
XSENDMAIL_LDADD=-lsasl
X.Ed
X.It Ar SENDMAIL_LDFLAGS
X(str) Flags to pass to the ld command when building sendmail.
X.It Ar SENDMAIL_LDADD
X(str) Flags to add to the end of the ld command when building sendmail.
X.It Ar SENDMAIL_DPADD
X(str) This variable is undocumented.
X.El
X.Pp
XThe following list provides a name and short description for variables
Xthat are used when building documentation.
X.Bl -tag -width Ar
X.It Ar DISTDIR
X(str) Where distfiles are kept. Normally, this is
X.Pa distfiles
Xin
X.Ev PORTSDIR .
X.It Ar DOC_LANG
X(str) The list of languages and encodings to build and install.
X.It Ar PRINTERDEVICE
X(str) The default format for system documentation, depends on your
Xprinter. This can be set to 
X.Dq Li ascii
Xfor simple printers or
X.Dq Li ps
Xfor postscript or graphics printers with a ghostscript
Xfilter.
X.El
X.Pp
XThe following list provides a name and short description for variables
Xthat are used when building ports:
X.Bl -tag -width Ar
X.It Ar FORCE_PKG_RESIDENT
X(bool) Set this to override any existing package registration.
X.It Ar HAVE_MOTIF
X(bool) Set this if you have Motif on your system.
X.It Ar KRB5_HOME
X(str) Set this if you want to install the MIT Kerberos5 port somewhere
Xother than
X.Pa /usr/local .
X.It Ar LOCALBASE
X(str) Set this to the base directory that non-X ports should be
Xinstalled in. It provides the default for PREFIX when building in
X.Pa /usr/ports .
X.It Ar MASTER_SITE_AFTERSTEP
X(str) Set this to change the master site for AfterStep ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_BACKUP
X(str) Controls the site location that ports check for distfiles if the
Xlocations listed in their 
X.Pa Makefile
Xdo not work. The last part of the path must be
X.Dq Li /${DIST_SUBDIR}/ .
X.It Ar MASTER_SITE_COMP_SOURCES
X(str) Controls the master site location for comp.sources ports. The
Xlast part of the path must be
X.Dq Li %SUBDIR%/
X.It Ar MASTER_SITE_GNOME
X(str) Controls the master site location for GNOME ports. The
Xlast part of the path must be
X.Dq Li /%SUBDIR%/
X.It Ar MASTER_SITE_GNU
X(str) Controls the master site location for GNU ports. The
Xlast part of the path must be
X.Dq Li /%SUBDIR%/
X.It Ar MASTER_SITE_KDE
X(str) Controls the master site location for KDE ports. The
Xlast part of the path must be
X.Dq Li /%SUBDIR%/
X.It Ar MASTER_SITE_FREEBSD
X(bool) If set, go to the master
X.Fx
Xsite for all files.
X.It Ar MASTER_SITE_MOZILLA
X(str) Controls the master site location for Mozilla ports. The
Xlast part of the path must be
X.Dq Li /%SUBDIR%/
X.It Ar MASTER_SITE_OVERRIDE
X(str) If set, this site is checked before the sites listed in the ports
X.Pa Makefile .
XYou can have it check the backup site first by like so:
X.Bd -literal -offset indent
XMASTER_SITE_OVERRIDE?=	${MASTER_SITE_BACKUP}
X.Ed
X.It Ar MASTER_SITE_PERL_CPAN
X(str) Controls the master site location for Perl ports. The
Xlast part of the path must be
X.Bd -literal -offset indent
X/%SUBDIR%/
X.Ed
X.It Ar MASTER_SORT_REGEX
X(str) Set this to control the sort order for mirror sets. To set it to
Xprefer mirrors in the .jp domain, use:
X.Bd -literal -offset indent
XMASTER_SORT_REGEX?=	^file: ^ftp://ftp\.FreeBSD\.org/pub/FreeBSD/ports/local-distfiles/ ://[^/]*\.jp/ ://[^/]*\.jp\.
X.Ed
XUsers of other ccTLD domins should change the 
X.Dq Li jp
Xto the
Xappropriate domain.
X.It Ar MASTER_SITE_RINGSERVER
X(str) Controls the master site location for Ringserver ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_RUBY
X(str) Controls the master site location for Ruby ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_SUNSITE
X(str) Controls the master site location for Sunsite ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_TCLTK
X(str) Controls the master site location for Tcl and Tk ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_TEX_CTAN
X(str) Controls the master site location for TeX ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_WINDOWMAKER
X(str) Controls the master site location for WindowMaker ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_XCONTRIB
X(str) Controls the master site location for contributed X ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_XEMACS
X(str) Controls the master site location for Xemacs ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MASTER_SITE_XFREE
X(str) Controls the master site location for XFree ports. The last
Xpart of the path must be
X.Dq Li /%SUBDIR%/ .
X.It Ar MOTIFLIB
X(str) Location of
X.Pa libXm.a
Xand
X.Pa libXm.so .
X.It Ar MOTIF_STATIC
X(bool) Set this if you want ports that use Motif to be built so they
Xcan be run on systems without the Motif shared libraries.
X.It Ar NOCLEANDEPENDS
X(bool) Set this to prevent 
X.Cm "make clean"
Xfrom cleaning the ports that the one being cleaned depends on.
X.It Ar NOPORTDOCS
X(bool) Set this to disable installing additional documentation with ports.
X.It Ar PACKAGES
X(str) Used only for the package target; the directory for the package tree.
X.It Ar PATCH_SITES
X(str) Primary location(s) for the distribution of patch files.
X.It Ar PORTSDIR
X(str) The location of the ports tree.
X.It Ar USA_RESIDENT
X(bool) Set this if you are a resident of the USA so that ports that
Xneed to can attemp to comply with U.S. export regulations.
X.It Ar WRKDIRPREFIX
X(str) Where to create temporary files used when building ports.
X.It Ar X11BASE
X(str) Should be set to where the X11 distribution has been
Xinstalled if it is installed anywhere other than /usr/X11R6.
X.Sh FILES
X.Bl -tag -width /etc/defaults/make.conf -compact
X.It Pa /etc/defaults/make.conf
X.It Pa /etc/make.conf
X.It Pa /usr/doc/Makefile
X.It Pa /usr/src/Makefile
X.It Pa /usr/src/Makefile.inc1
X.It Pa /usr/ports/Mk/bsd.port.mk
X.It Pa /usr/ports/Mk/bsd.sites.mk
X.Sh SEE ALSO
X.Xr gcc 1 ,
X.Xr install 1 ,
X.Xr lpd 8 ,
X.Xr make 1 ,
X.Xr make 7 ,
X.Xr ports 7 ,
X.Xr sendmail 8
X.Sh HISTORY
XThe
X.Nm
Xfile appeared sometime before
X.Fx 4.0 .
X.Sh AUTHORS
X.An Mike W. Meyer Aq mwm@mired.org .
END-of-manpages/make.conf.5
echo x - manpages/build.7
sed 's/^X//' >manpages/build.7 << 'END-of-manpages/build.7'
X.\" Copyright (c) 2000
X.\"	Mike W. Meyer
X.\"
X.\" Redistribution and use in source and binary forms, with or without
X.\" modification, are permitted provided that the following conditions
X.\" are met:
X.\" 1. Redistributions of source code must retain the above copyright
X.\"    notice, this list of conditions and the following disclaimer.
X.\" 2. Redistributions in binary form must reproduce the above copyright
X.\"    notice, this list of conditions and the following disclaimer in the
X.\"    documentation and/or other materials provided with the distribution.
X.\"
X.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
X.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
X.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
X.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
X.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
X.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
X.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
X.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
X.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
X.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
X.\" SUCH DAMAGE.
X.\"
X.\" $FreeBSD:$
X.\"
X.Dd Nov 4, 2000
X.Dt BUILD 7
X.Os
X.Sh NAME
X.Nm build
X.Nd information on how to build the system.
X.Sh DESCRIPTION
XThe source for the
X.Os FreeBSD
Xsystem and applications are contained in three different directories,
Xnormally
X.Pa /usr/src ,
X.Pa /usr/doc ,
Xand
X.Pa /usr/ports .
X.Pa /usr/src
Xcontains the
X.Dq "base system"
Xsources, which is loosely defined as the things required to rebuild
Xthe system to a useful state.
X.Pa /usr/doc
Xcontains the source for the system documentation, excluding the manual
Xpages.
X.Pa /usr/ports
Xis a tree that provides a consistent interface for building and
Xinstalling third party applications.
X.Pp
XThe
X.Xr make 1
Xcommand is used in each of these directories to build and install the
Xthings in that directory. Issuing the make command in any directory or
Xsubdirectory of those directories has the same effect as issuing the
Xsame command in all subdirectories of that directory. With no target
Xspecified, the things in that directory are just built. The following
Xlist provides the names and actions for other targets:
X.Bl -tag -width Ar
X.It Ar clean
XRemoves any files created during the build process.
X.It Ar install
XInstalls the results of the build for this directory.
X.It Ar update
XGets updated sources as configured in
X.Pa /etc/make.conf .
X.El
X.Pp
XThe other
X.Pa /usr/src
Xmake targets are:
X.Bl -tag -width Ar
X.It Ar buildworld
XRebuild everything but the kernel, configure files in
X.Pa /etc ,
Xand release.
X.It Ar installworld
XInstall everything built by
X.Dq buildworld .
X.It Ar world
Xbuildworld + installworld.
X.It Ar buildkernel
XRebuild the kernel and the kernel-modules.
X.It Ar installkernel
XInstall the kernel and the kernel-modules.
X.It Ar reinstallkernel
XReinstall the kernel and the kernel-modules.
X.It Ar upgrade 
XUpgrade a.out (2.2.x/3.0) system to the new ELF way
X.It Ar most
XBuild user commands, no libraries or include files.
X.It Ar installmost
XInstall user commands, no libraries or include files.
X.It Ar aout-to-elf
XUpgrade an system from a.out to elf format.
X.It Ar aout-to-elf-build
XBuild everything required to upgrade a system from a.out to elf format.
X.It Ar aout-to-elf-install
XInstall everything built by aout-to-elf-build.
X.It Ar move-aout-libs
XMove the a.out libraries into an aout sub-directory of each elf
Xlibrary sub-directory.
X.El
X.Pp
XFor more information about the ports build process, see
X.Xr ports 7 .
X.Sh FILES
X.Bl -tag -width /etc/defaults/make.conf -compact
X.It Pa /etc/defaults/make.conf
X.It Pa /etc/make.conf
X.It Pa /usr/doc/Makefile
X.It Pa /usr/doc/share/mk/doc.project.mk
X.It Pa /usr/src/Makefile
X.It Pa /usr/src/Makefile.inc1
X.It Pa /usr/ports/Mk/bsd.port.mk
X.It Pa /usr/ports/Mk/bsd.sites.mk
X.Sh SEE ALSO
X.Xr gcc 1 ,
X.Xr install 1 ,
X.Xr make 1 ,
X.Xr make.conf 5 ,
X.Xr ports 7
X.Sh AUTHORS
X.An Mike W. Meyer Aq mwm@mired.org .
END-of-manpages/build.7
exit


>Release-Note:
>Audit-Trail:

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: mwm@mired.org
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Wed, 08 Nov 2000 14:12:58 +0200

 On 08 Nov 2000 01:26:36 GMT, mwm@mired.org wrote:
 
 > >Number:         22676
 > >Category:       docs
 > >Synopsis:       No man pages for Make.conf or /usr/src/sys/Makefile
 
 Oh dear.  You've put a lot of work into this.
 
 As someone who spends a lot of time pulling his hair out over stale
 manual pages, these two scare me.
 
 I honestly think that it's a bad idea to import these two.  They
 basically just duplicate the commentary in the files they document, and
 I don't think it's too much to ask for folks to read the files
 themselves.
 
 It's great that you're getting stuck in and contributing, but I think
 that these two aren't a good idea. :-(
 
 Ciao,
 Sheldon.
 

From: Mike Meyer <mwm@mired.org>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Wed, 8 Nov 2000 09:30:32 -0600 (CST)

 Sheldon Hearn <sheldonh@uunet.co.za> types:
 > On 08 Nov 2000 01:26:36 GMT, mwm@mired.org wrote:
 > > >Number:         22676
 > > >Category:       docs
 > > >Synopsis:       No man pages for Make.conf or /usr/src/sys/Makefile
 > Oh dear.  You've put a lot of work into this.
 
 Well, it's obvious to anyone who spends much time helping people in
 -questions that better sources for this information is needed, but
 doing the work doesn't mean it gets used. Which was why I asked jkh
 about a make.conf man page *before* putting a lot of time into it.  He
 thought it was a good idea. In putting it together, I noticed that I
 had what was essentially a parallel to the ports(7) man page, so
 unbundled the build(7) man page from what I'd originally
 planned. There really needs to be a doc(7) (docs?)  man page as well,
 but I don't know enough to write that one.
 
 > As someone who spends a lot of time pulling his hair out over stale
 > manual pages, these two scare me.
 
 To quote jkh - "any man page is better than no man page". If you don't
 have a man page, you have to check the sources. If you do and it's
 stale, you have to check the sources - only you've got historical
 clues to help you get started.
 
 > I honestly think that it's a bad idea to import these two.  They
 > basically just duplicate the commentary in the files they document, and
 > I don't think it's too much to ask for folks to read the files
 > themselves.
 
 First, build(7) doesn't document a single file, but a process. Of
 course, it duplicates information in the files that take place in the
 process - but what man page doesn't duplicate information from the
 sources?
 
 Second, the bulk of the work I did was in the make.conf man page. If
 you look at /etc/defaults/make.conf - well, I'll do it for you:
 
 guru$ grep -v '^#' /etc/defaults/make.conf
 BDECFLAGS=      -W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
                 -Wcast-qual -Wchar-subscripts -Wconversion -Winline \
                 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
                 -Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings
 
 Unlike rc.conf (which *is* documented), that file is pretty much *all*
 comments. My suggestion would be to have someone with the commit bit
 sync the two again, possibly bringing in more of the default values,
 then replace everything but BDECFLAGS in /etc/defaults/make.conf with
 a comment about "see (or update) the make.conf(5) man page". Come to
 think of it, a similar pointer/reminder in /etc/defaults/rc.conf is
 probably a good idea in any case, as that page already exists.
 
 > It's great that you're getting stuck in and contributing, but I think
 > that these two aren't a good idea. :-(
 
 If you do what I suggested, then you've still got the source and one
 bit of documentation - only the documentation can take advantage of
 mdoc. As for the build(7) man page, it pulls together stuff that
 requires reading more than one file.
 
 	<mike
 

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: Mike Meyer <mwm@mired.org>
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Thu, 09 Nov 2000 10:10:12 +0200

 On Wed, 08 Nov 2000 09:30:32 CST, Mike Meyer wrote:
 
 > First, build(7) doesn't document a single file, but a process. Of
 > course, it duplicates information in the files that take place in the
 > process - but what man page doesn't duplicate information from the
 > sources?
 
 You're right.  I stand down for build(7) (in other words, I think it's a
 good idea), but still don't think that make.conf(5) is a good idea.
 
 Ciao,
 Sheldon.
 

From: Mike Meyer <mwm@mired.org>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Thu, 9 Nov 2000 13:22:59 -0600 (CST)

 Sheldon Hearn <sheldonh@uunet.co.za> types:
 > On Wed, 08 Nov 2000 09:30:32 CST, Mike Meyer wrote:
 > > First, build(7) doesn't document a single file, but a process. Of
 > > course, it duplicates information in the files that take place in the
 > > process - but what man page doesn't duplicate information from the
 > > sources?
 > You're right.  I stand down for build(7) (in other words, I think it's a
 > good idea), but still don't think that make.conf(5) is a good idea.
 
 Even though I've shown you how to do things so this doesn't make the
 stale documentation problem any worse than it already is, and it
 improves the accessibility of the documentation?
 
 	<mike
 
 

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: Mike Meyer <mwm@mired.org>
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Fri, 10 Nov 2000 10:02:56 +0200

 On Thu, 09 Nov 2000 13:22:59 CST, Mike Meyer wrote:
 
 > Even though I've shown you how to do things so this doesn't make the
 > stale documentation problem any worse than it already is, and it
 > improves the accessibility of the documentation?
 
 Yup.  However, I do think that my argument is mostly emotional. :-)
 
 I have this pretty deep-seated feeling that manpages that document the
 obvious aren't good.
 
 However, you can probably just ignore everything I've said, given Nik
 Clayton's counter argument and the fact that I have nothing to say in
 answer to it. :-)
 
 Ciao,
 Sheldon.
 

From: Mike Meyer <mwm@mired.org>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc:  
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Fri, 10 Nov 2000 02:32:25 -0600 (CST)

 Sheldon Hearn <sheldonh@uunet.co.za> types:
 > On Thu, 09 Nov 2000 13:22:59 CST, Mike Meyer wrote:
 > > Even though I've shown you how to do things so this doesn't make the
 > > stale documentation problem any worse than it already is, and it
 > > improves the accessibility of the documentation?
 > Yup.  However, I do think that my argument is mostly emotional. :-)
 
 I actually expected that to be the case. Changing someone's mind via
 email is nearly impossible.
 
 > I have this pretty deep-seated feeling that manpages that document the
 > obvious aren't good.
 
 I actually agree with that - what you need in those cases is a man
 page pointing out where "the obvious" can be found. For make.conf,
 that information is the comments in /etc/defaults/make.conf, so you
 might as well just maintain the man page as the comments. For
 periodic.conf and rc.conf, that doesn't make as much sense - but we've
 got man pages for those already.
 
 > However, you can probably just ignore everything I've said, given Nik
 > Clayton's counter argument and the fact that I have nothing to say in
 > answer to it. :-)
 
 I haven't seen that mail. It's not attached to the PR. Could you tell
 me where it showed up, or possibly forward it to me?
 
 	Thanx,
 	<mike
 
 
 

From: Nik Clayton <nik@freebsd.org>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc: freebsd-doc@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile
Date: Thu, 9 Nov 2000 11:25:54 +0000

 On Wed, Nov 08, 2000 at 04:20:04AM -0800, Sheldon Hearn wrote:
 >  > >Number:         22676
 >  > >Category:       docs
 >  > >Synopsis:       No man pages for Make.conf or /usr/src/sys/Makefile
 >  
 >  Oh dear.  You've put a lot of work into this.
 >  
 >  As someone who spends a lot of time pulling his hair out over stale
 >  manual pages, these two scare me.
 >  
 >  I honestly think that it's a bad idea to import these two.  They
 >  basically just duplicate the commentary in the files they document, and
 >  I don't think it's too much to ask for folks to read the files
 >  themselves.
 
 I'm inclined to disagree.  Otherwise we could ditch rc.conf(5), 
 periodic.conf(5), and others -- fstab(5) could be lost if we made sure
 that /etc/fstab was sufficiently well commented, for example.
 
 I understand that keeping them up to date is a chore, but I think as long
 as they include a caveat that says something like
 
     BUGS
 
     This man page may lag behind the actual contents of the file, please
     read the comments in the file for any new functionality.
 
 then we should be OK.  I'm also more than happy to support any committer
 whacking you want to do when someone commits to /etc/make.conf without
 updating make.conf(5) (and we should probably put a comment in the top of
 /etc/make.conf saying exactly that.
 
 N
 -- 
 Internet connection, $19.95 a month.  Computer, $799.95.  Modem, $149.95.
 Telephone line, $24.95 a month.  Software, free.  USENET transmission,
 hundreds if not thousands of dollars.  Thinking before posting, priceless.
 Somethings in life you can't buy.  For everything else, there's MasterCard.
   -- Graham Reed, in the Scary Devil Monastery
 
 

From: Mike Meyer <mwm@mired.org>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc: Nik Clayton <nik@freebsd.org>, freebsd-doc@freebsd.org,
	FreeBSD-gnats-submit@freebsd.org
Subject: Re: docs/22676: No man pages for Make.conf or /usr/src/sys/Makefile 
Date: Fri, 10 Nov 2000 02:56:46 -0600 (CST)

 Sheldon Hearn <sheldonh@uunet.co.za> types:
 > On Fri, 10 Nov 2000 02:32:25 CST, Mike Meyer wrote:
 > > I haven't seen that mail. It's not attached to the PR. Could you tell
 > > me where it showed up, or possibly forward it to me?
 > *grumble* *grumble*  It always annoys me when folks mail the responsible
 > mailing list instead of copying their follow-up to the gnats handler.
 > I'll get Nik's message into gnats.  For now, it's included in this
 > message.
 
 Thank you.
 
 To reply to a comment from Nik Clayton:
 
 > I understand that keeping them up to date is a chore, but I think as long
 > as they include a caveat that says something like
 >
 >     BUGS
 > 
 >     This man page may lag behind the actual contents of the file, please
 >     read the comments in the file for any new functionality.
 
 The man page references /etc/defaults/make.conf. And since Nik pointed
 out the relation to periodic.conf & rc.conf, they could use the same
 caveat.
 
 > then we should be OK.  I'm also more than happy to support any committer
 > whacking you want to do when someone commits to /etc/make.conf without
 > updating make.conf(5) (and we should probably put a comment in the top of
 > /etc/make.conf saying exactly that.
 
 I hope you meant /etc/defaults/make.conf. /etc/make.conf isn't there
 until someone creates it post-install. Similar comments would be even
 more effective in the other file sin /etc/defaults.
 
 	<mike
 
 
State-Changed-From-To: open->closed 
State-Changed-By: ben 
State-Changed-When: Wed Nov 22 14:11:43 GMT 2000 
State-Changed-Why:  
Committed, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=22676 
>Unformatted:
