Merge branch 'vendor/OPENSSL'
[dragonfly.git] / share / man / man7 / build.7
CommitLineData
984263bc
MD
1.\" Copyright (c) 2000
2.\" Mike W. Meyer
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\" notice, this list of conditions and the following disclaimer in the
11.\" documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD: src/share/man/man7/build.7,v 1.19.2.1 2002/03/18 08:33:02 murray Exp $
05d75b5d 26.\" $DragonFly: src/share/man/man7/build.7,v 1.18 2008/11/14 15:04:42 swildner Exp $
984263bc 27.\"
0ee79394 28.Dd April 12, 2009
984263bc
MD
29.Dt BUILD 7
30.Os
31.Sh NAME
32.Nm build
33.Nd information on how to build the system
34.Sh DESCRIPTION
35The source for the
9bb2a92d 36.Dx
b4223d36
SW
37system and applications is located in
38.Pa /usr/src .
39This directory contains the
984263bc
MD
40.Dq "base system"
41sources, which is loosely defined as the things required to rebuild
42the system to a useful state.
0cd7b3a7
HP
43It also contains the source for the system documentation, including
44manual pages.
2f2b5493
SW
45Refer to
46.Xr development 7
47for more information on how to obtain the
48.Dx
49sources.
50.Pp
b4223d36 51Third party applications have to be built using the
d524fc16 52.Xr pkgsrc 7
b4223d36
SW
53system.
54The file
55.Pa /usr/src/UPDATING
d524fc16 56gives specifics on how to obtain the tree for building packages.
984263bc
MD
57.Pp
58The
59.Xr make 1
b4223d36
SW
60command is used in
61.Pa /usr/src
62to build and install the things in that directory.
63Issuing the
4fb5b569
SW
64.Xr make 1
65command in any directory or
984263bc 66subdirectory of those directories has the same effect as issuing the
b4223d36
SW
67same command in all subdirectories of that directory.
68With no target specified, the things in that directory are just built.
69The following list provides the names and actions for other targets:
4fb5b569
SW
70.Bl -tag -width ".Cm install"
71.It Cm clean
984263bc 72Removes any files created during the build process.
4fb5b569 73.It Cm install
984263bc 74Installs the results of the build for this directory.
984263bc
MD
75.El
76.Pp
77The other
78.Pa /usr/src
79make targets are:
4fb5b569
SW
80.Bl -tag -width ".Cm reinstallkernel"
81.It Cm buildworld
82Rebuild everything but the kernel.
83.It Cm quickworld
84Same as
85.Cm buildworld ,
86but skip bootstrap, build and cross-build tool steps.
87This target can be used for incremental upgrades once a full build of the
88world has been done with
89.Cm buildworld .
90.It Cm realquickworld
91Same as
92.Cm quickworld ,
93but also skip the depend step.
94.It Cm crossworld
95Just do the bootstrap, build and cross-build steps.
96.It Cm installworld
984263bc 97Install everything built by
4fb5b569
SW
98.Cm buildworld .
99.It Cm world
100.Cm buildworld +
101.Cm installworld .
102.It Cm buildkernel
984263bc 103Rebuild the kernel and the kernel-modules.
4fb5b569
SW
104.It Cm nativekernel
105Rebuild the kernel and the kernel-modules using native tools.
106.It Cm quickkernel
107Same as
108.Cm buildkernel ,
109but skip the depend step and do not clean out the
b4223d36
SW
110obj modules.
111This target can be used for incremental upgrades once a full
4fb5b569
SW
112build of the kernel has been done with
113.Cm buildkernel .
114.It Cm installkernel
984263bc 115Install the kernel and the kernel-modules.
4fb5b569 116.It Cm reinstallkernel
984263bc 117Reinstall the kernel and the kernel-modules.
4fb5b569
SW
118.It Cm kernel
119.Cm buildkernel +
120.Cm installkernel .
121.It Cm preupgrade
122Perform certain upgrades that have to be done before
123.Cm installworld .
124.Cm installworld
125will complain if they have not been done.
126.It Cm upgrade
127Upgrade the files in /etc and also setup the rest of the system for
a3220ac5
SW
128the version of
129.Dx
130just installed.
4fb5b569 131.It Cm most
984263bc 132Build user commands, no libraries or include files.
4fb5b569 133.It Cm installmost
984263bc 134Install user commands, no libraries or include files.
984263bc 135.El
984263bc 136.Sh ENVIRONMENT
29c86147
SW
137.Bl -tag -width ".Ev MAKEOBJDIRPREFIX"
138.It Ev TARGET_ARCH , TARGET_PLATFORM
139The target machine processor architecture and hardware platform.
140These have to be set for cross-building.
141.Ev TARGET_ARCH
142is analogous to the
4fb5b569 143.Dq Nm uname Fl p
984263bc 144output.
29c86147
SW
145To build for the 32 bit
146.Tn Intel
147architecture known as IA-32, x86 or x86-32, use:
148.Bd -literal -offset indent
149TARGET_ARCH=i386
150TARGET_PLATFORM=pc32
151.Ed
152.Pp
153For the 64 bit
154.Tn AMD
155architecture known as AMD64, x86-64 or Intel 64, use:
156.Bd -literal -offset indent
b2b3ffcd 157TARGET_ARCH=x86_64
29c86147
SW
158TARGET_PLATFORM=pc64
159.Ed
f82d774f 160.It Ev DESTDIR
e2c9718c
SW
161An existing directory to be the root of
162the hierarchy where the resulting binaries will be
f82d774f
SW
163installed (the default is
164.Pa / ) .
165.It Ev MAKEOBJDIRPREFIX
166The directory hierarchy where the object files will be built (the default is
167.Pa /usr/obj ) .
458e075b
SW
168.It Ev __MAKE_CONF
169Used to override the path of
170.Xr make.conf 5
171(the default is
172.Pa /etc/make.conf ) .
f82d774f
SW
173.It Ev KERNCONF
174The name of the kernel configuration file from which the kernel should
175be built (the default is
176.Li GENERIC ) .
177.It Ev KERNCONFDIR
178The directory where the kernel configuration files are kept (the default is
179.Pa /usr/src/sys/config ) .
0aa15547
YT
180.It Ev DESTLABEL
181Common suffix added to kernel and modules directory names, prefixed by
182a single dot. For example,
183.Bd -literal -offset indent
184make DESTLABEL=test installkernel
185.Ed
186.Pp
187installs them as
188.Pa /boot/kernel.test
189and
190.Pa /boot/modules.test ,
191respectively.
192.It Ev DESTKERNDIR
193Where to install the kernel and the modules (the default is
194.Pa /boot ) ,
195in the directory hierarchy specified by the environment variable
196.Ev DESTDIR .
197.It Ev DESTKERNNAME
198The name of the installed kernel file (the default is
199.Pa kernel ) ,
200under the directory specified by
201.Ev DESTKERNDIR .
202This overrides the effect of
203.Ev DESTLABEL .
204.It Ev DESTMODULESNAME
205The name of the directory to install the kernel modules (the default is
206.Pa modules ) ,
207under the directory specified by
208.Ev DESTKERNDIR .
209This overrides the effect of
210.Ev DESTLABEL .
984263bc
MD
211.El
212.Sh FILES
0ee79394 213.Bl -tag -width ".Pa /usr/src/Makefile_upgrade.inc" -compact
984263bc 214.It Pa /etc/make.conf
4fb5b569 215.It Pa /etc/defaults/make.conf
0cd7b3a7 216.It Pa /usr/src/share/doc/Makefile
984263bc
MD
217.It Pa /usr/src/Makefile
218.It Pa /usr/src/Makefile.inc1
0ee79394 219.It Pa /usr/src/Makefile_upgrade.inc
984263bc
MD
220.El
221.Sh EXAMPLES
222The
223.Dq approved
224method of updating your system from the latest sources is:
225.Bd -literal -offset indent
226make buildworld
227make buildkernel KERNCONF=FOO
228make installkernel KERNCONF=FOO
229make installworld
9eee3f0a 230make upgrade
984263bc
MD
231.Ed
232.Pp
984263bc 233After running these commands a system reboot is required,
9b102de4
SW
234otherwise many programs which have been rebuilt (such as
235.Xr ps 1 ,
236.Xr top 1 ,
237etc.) may not work with the old kernel which is still running.
806e1a3a
SW
238.Sh CAVEATS
239The build and install order in the
240.Sx EXAMPLES
241section enforces that the new kernel is installed before the new
242world.
243Sometimes it might be necessary to reboot the system between those two
244steps.
f82d774f
SW
245In this case
246.Dq Nm make Cm installworld
247will tell you to do so.
984263bc
MD
248.Sh SEE ALSO
249.Xr cc 1 ,
250.Xr install 1 ,
251.Xr make 1 ,
7d3337b3 252.Xr wmake 1 ,
984263bc 253.Xr make.conf 5 ,
127e04d4 254.Xr development 7 ,
d524fc16 255.Xr pkgsrc 7 ,
984263bc 256.Xr release 7 ,
4fb5b569 257.Xr config 8 ,
984263bc
MD
258.Xr reboot 8 ,
259.Xr shutdown 8
260.Sh AUTHORS
b4223d36
SW
261.An -nosplit
262.An Mike W. Meyer Aq mwm@mired.org
263and
264.An Sascha Wildner Aq swildner@gmail.com .