1786aa69aSBen Smithurst.\" Copyright (c) 2000 2786aa69aSBen Smithurst.\" Mike W. Meyer 3786aa69aSBen Smithurst.\" 4786aa69aSBen Smithurst.\" Redistribution and use in source and binary forms, with or without 5786aa69aSBen Smithurst.\" modification, are permitted provided that the following conditions 6786aa69aSBen Smithurst.\" are met: 7786aa69aSBen Smithurst.\" 1. Redistributions of source code must retain the above copyright 8786aa69aSBen Smithurst.\" notice, this list of conditions and the following disclaimer. 9786aa69aSBen Smithurst.\" 2. Redistributions in binary form must reproduce the above copyright 10786aa69aSBen Smithurst.\" notice, this list of conditions and the following disclaimer in the 11786aa69aSBen Smithurst.\" documentation and/or other materials provided with the distribution. 12786aa69aSBen Smithurst.\" 13786aa69aSBen Smithurst.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND 14786aa69aSBen Smithurst.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15786aa69aSBen Smithurst.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16786aa69aSBen Smithurst.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE 17786aa69aSBen Smithurst.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18786aa69aSBen Smithurst.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19786aa69aSBen Smithurst.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20786aa69aSBen Smithurst.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21786aa69aSBen Smithurst.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22786aa69aSBen Smithurst.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23786aa69aSBen Smithurst.\" SUCH DAMAGE. 24786aa69aSBen Smithurst.\" 25786aa69aSBen Smithurst.\" $FreeBSD$ 26786aa69aSBen Smithurst.\" 27d7b336c0SRuslan Ermilov.Dd November 4, 2000 28786aa69aSBen Smithurst.Dt BUILD 7 293d45e180SRuslan Ermilov.Os 30786aa69aSBen Smithurst.Sh NAME 31786aa69aSBen Smithurst.Nm build 32eb083802SRuslan Ermilov.Nd information on how to build the system 33786aa69aSBen Smithurst.Sh DESCRIPTION 34786aa69aSBen SmithurstThe source for the 35d003b779SRuslan Ermilov.Fx 36786aa69aSBen Smithurstsystem and applications are contained in three different directories, 37786aa69aSBen Smithurstnormally 38786aa69aSBen Smithurst.Pa /usr/src , 39786aa69aSBen Smithurst.Pa /usr/doc , 40786aa69aSBen Smithurstand 41786aa69aSBen Smithurst.Pa /usr/ports . 42786aa69aSBen Smithurst.Pa /usr/src 43786aa69aSBen Smithurstcontains the 44786aa69aSBen Smithurst.Dq "base system" 45786aa69aSBen Smithurstsources, which is loosely defined as the things required to rebuild 46786aa69aSBen Smithurstthe system to a useful state. 47786aa69aSBen Smithurst.Pa /usr/doc 48786aa69aSBen Smithurstcontains the source for the system documentation, excluding the manual 49786aa69aSBen Smithurstpages. 50786aa69aSBen Smithurst.Pa /usr/ports 51786aa69aSBen Smithurstis a tree that provides a consistent interface for building and 52786aa69aSBen Smithurstinstalling third party applications. 53786aa69aSBen Smithurst.Pp 54786aa69aSBen SmithurstThe 55786aa69aSBen Smithurst.Xr make 1 56786aa69aSBen Smithurstcommand is used in each of these directories to build and install the 57786aa69aSBen Smithurstthings in that directory. Issuing the make command in any directory or 58786aa69aSBen Smithurstsubdirectory of those directories has the same effect as issuing the 59786aa69aSBen Smithurstsame command in all subdirectories of that directory. With no target 60786aa69aSBen Smithurstspecified, the things in that directory are just built. The following 61786aa69aSBen Smithurstlist provides the names and actions for other targets: 62786aa69aSBen Smithurst.Bl -tag -width Ar 63786aa69aSBen Smithurst.It Ar clean 64786aa69aSBen SmithurstRemoves any files created during the build process. 65786aa69aSBen Smithurst.It Ar install 66786aa69aSBen SmithurstInstalls the results of the build for this directory. 67786aa69aSBen Smithurst.It Ar update 68786aa69aSBen SmithurstGets updated sources as configured in 69786aa69aSBen Smithurst.Pa /etc/make.conf . 70786aa69aSBen Smithurst.El 71786aa69aSBen Smithurst.Pp 72786aa69aSBen SmithurstThe other 73786aa69aSBen Smithurst.Pa /usr/src 74786aa69aSBen Smithurstmake targets are: 75786aa69aSBen Smithurst.Bl -tag -width Ar 76786aa69aSBen Smithurst.It Ar buildworld 77786aa69aSBen SmithurstRebuild everything but the kernel, configure files in 78786aa69aSBen Smithurst.Pa /etc , 79786aa69aSBen Smithurstand release. 80786aa69aSBen Smithurst.It Ar installworld 81786aa69aSBen SmithurstInstall everything built by 82786aa69aSBen Smithurst.Dq buildworld . 83786aa69aSBen Smithurst.It Ar world 84786aa69aSBen Smithurstbuildworld + installworld. 85786aa69aSBen Smithurst.It Ar buildkernel 86786aa69aSBen SmithurstRebuild the kernel and the kernel-modules. 87786aa69aSBen Smithurst.It Ar installkernel 88786aa69aSBen SmithurstInstall the kernel and the kernel-modules. 89786aa69aSBen Smithurst.It Ar reinstallkernel 90786aa69aSBen SmithurstReinstall the kernel and the kernel-modules. 91786aa69aSBen Smithurst.It Ar upgrade 92786aa69aSBen SmithurstUpgrade a.out (2.2.x/3.0) system to the new ELF way 93786aa69aSBen Smithurst.It Ar most 94786aa69aSBen SmithurstBuild user commands, no libraries or include files. 95786aa69aSBen Smithurst.It Ar installmost 96786aa69aSBen SmithurstInstall user commands, no libraries or include files. 97786aa69aSBen Smithurst.It Ar aout-to-elf 98786aa69aSBen SmithurstUpgrade an system from a.out to elf format. 99786aa69aSBen Smithurst.It Ar aout-to-elf-build 100786aa69aSBen SmithurstBuild everything required to upgrade a system from a.out to elf format. 101786aa69aSBen Smithurst.It Ar aout-to-elf-install 102786aa69aSBen SmithurstInstall everything built by aout-to-elf-build. 103786aa69aSBen Smithurst.It Ar move-aout-libs 104786aa69aSBen SmithurstMove the a.out libraries into an aout sub-directory of each elf 105786aa69aSBen Smithurstlibrary sub-directory. 106786aa69aSBen Smithurst.El 107786aa69aSBen Smithurst.Pp 108786aa69aSBen SmithurstFor more information about the ports build process, see 109786aa69aSBen Smithurst.Xr ports 7 . 110b82e53e2SMurray Stokely.Sh ENVIRONMENT 111b82e53e2SMurray Stokely.Bl -tag -width ".Ev TARGET_ARCH" 112b82e53e2SMurray Stokely.It Ev TARGET_ARCH 113b3a43ea3SMurray StokelyThe target machine processor architecture. 114b3a43ea3SMurray StokelyThis is analagous to the 115b3a43ea3SMurray Stokely.Dq "uname -p" 116b3a43ea3SMurray Stokelyoutput. 117b82e53e2SMurray StokelySet this to cross-build for a different architecture. 118b3a43ea3SMurray Stokely.It Ev TARGET 119b3a43ea3SMurray StokelyThe target hardware platform. 120b3a43ea3SMurray StokelyThis is analagous to the 121b3a43ea3SMurray Stokely.Dq "uname -m" 122b3a43ea3SMurray Stokelyoutput. 123b3a43ea3SMurray StokelyThis is necessary to cross-build some target architectures. 124b3a43ea3SMurray StokelyFor example, cross-building for PC98 machines requires 125b3a43ea3SMurray Stokely.Ev "TARGET_ARCH=i386" 126b3a43ea3SMurray Stokelyand 127b3a43ea3SMurray Stokely.Ev "TARGET=pc98" . 128b82e53e2SMurray Stokely.It Ev NO_WERROR 129b82e53e2SMurray StokelyIf defined, warnings will not cause the build to halt, even if the 130b82e53e2SMurray Stokelymakefile says otherwise. 131b3a43ea3SMurray Stokely.It Ev DESTDIR 132b3a43ea3SMurray StokelyThe directory hierarchy where the resulting binaries will be 133b3a43ea3SMurray Stokelyinstalled. 134b82e53e2SMurray Stokely.El 135786aa69aSBen Smithurst.Sh FILES 1360c0eb9beSRuslan Ermilov.Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact 137786aa69aSBen Smithurst.It Pa /etc/make.conf 138786aa69aSBen Smithurst.It Pa /usr/doc/Makefile 139786aa69aSBen Smithurst.It Pa /usr/doc/share/mk/doc.project.mk 140786aa69aSBen Smithurst.It Pa /usr/ports/Mk/bsd.port.mk 141786aa69aSBen Smithurst.It Pa /usr/ports/Mk/bsd.sites.mk 1420c0eb9beSRuslan Ermilov.It Pa /usr/share/examples/etc//make.conf 1430c0eb9beSRuslan Ermilov.It Pa /usr/src/Makefile 1440c0eb9beSRuslan Ermilov.It Pa /usr/src/Makefile.inc1 1453136363fSRuslan Ermilov.El 1463faf5fc9SBen Smithurst.Sh EXAMPLES 1473faf5fc9SBen SmithurstThe 1483faf5fc9SBen Smithurst.Dq approved 1493faf5fc9SBen Smithurstmethod of updating your system from the latest sources is: 1503faf5fc9SBen Smithurst.Bd -literal -offset indent 1513faf5fc9SBen Smithurstmake buildworld 152120bcabcSJohn Baldwinmake buildkernel KERNCONF=FOO 153120bcabcSJohn Baldwinmake installkernel KERNCONF=FOO 1543faf5fc9SBen Smithurstmake installworld 15547f77d8cSBen Smithurstmergemaster 1563faf5fc9SBen Smithurst.Ed 1573faf5fc9SBen Smithurst.Pp 1583faf5fc9SBen Smithurst.Dq FOO 1593faf5fc9SBen Smithurstmust be replaced with the name of the kernel configuration file from which 1603faf5fc9SBen Smithurstthe kernel should be built. 1613faf5fc9SBen SmithurstAlternatively, the 162120bcabcSJohn Baldwin.Va KERNCONF 1633faf5fc9SBen Smithurstvariable in 1643faf5fc9SBen Smithurst.Pa /etc/make.conf 1653faf5fc9SBen Smithurstcan be set to the name of the kernel to build; 1663faf5fc9SBen Smithurstin this case the 167120bcabcSJohn Baldwin.Dq KERNCONF=FOO 1683faf5fc9SBen Smithurstpart of the 1693faf5fc9SBen Smithurst.Dq buildkernel 1703faf5fc9SBen Smithurstand 1713faf5fc9SBen Smithurst.Dq installkernel 1723faf5fc9SBen Smithurstcommands can be omitted. 1733faf5fc9SBen Smithurst.Pp 1743faf5fc9SBen SmithurstAfter running these commands a system reboot is required, 1753faf5fc9SBen Smithurstotherwise many programs which have been rebuilt 1763faf5fc9SBen Smithurst(such as 1773faf5fc9SBen Smithurst.Nm ps , 1783faf5fc9SBen Smithurst.Nm top , 1793faf5fc9SBen Smithurstetc) 180a81996b6SBen Smithurstmay not work with the old kernel which is still running. 181b82e53e2SMurray Stokely.Pp 182b82e53e2SMurray StokelyThe following sequence of commands can be used to cross-build the 183b82e53e2SMurray Stokelysystem for the Alpha architecture on an i386 host: 184b82e53e2SMurray Stokely.Bd -literal -offset indent 185b82e53e2SMurray Stokelycd /usr/src 186b3a43ea3SMurray Stokelymake TARGET_ARCH=alpha buildworld 187b3a43ea3SMurray Stokelymake TARGET_ARCH=alpha DESTDIR=/clients/axp installworld 188b82e53e2SMurray Stokely.Ed 189786aa69aSBen Smithurst.Sh SEE ALSO 1907c20a493SBen Smithurst.Xr cc 1 , 191786aa69aSBen Smithurst.Xr install 1 , 192786aa69aSBen Smithurst.Xr make 1 , 193786aa69aSBen Smithurst.Xr make.conf 5 , 194a81996b6SBen Smithurst.Xr ports 7 , 195a54bda91SMurray Stokely.Xr release 7 , 19647f77d8cSBen Smithurst.Xr mergemaster 8 , 197a81996b6SBen Smithurst.Xr reboot 8 , 198a81996b6SBen Smithurst.Xr shutdown 8 199786aa69aSBen Smithurst.Sh AUTHORS 200786aa69aSBen Smithurst.An Mike W. Meyer Aq mwm@mired.org . 201