1 |
1275 |
phoenix |
Overview of Kbuild Commands
|
2 |
|
|
24 January 1999
|
3 |
|
|
Michael Elizabeth Chastain,
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
=== Introduction
|
8 |
|
|
|
9 |
|
|
Someday we'll get our arms around all this stuff and clean it up
|
10 |
|
|
a little! Meanwhile, this file describes the system as it is today.
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
=== Quick Start
|
15 |
|
|
|
16 |
|
|
If you are building a kernel for the first time, here are the commands
|
17 |
|
|
you need:
|
18 |
|
|
|
19 |
|
|
make config
|
20 |
|
|
make dep
|
21 |
|
|
make bzImage
|
22 |
|
|
|
23 |
|
|
Instead of 'make config', you can run 'make menuconfig' for a full-screen
|
24 |
|
|
text interface, or 'make xconfig' for an X interface using TCL/TK.
|
25 |
|
|
|
26 |
|
|
'make bzImage' will leave your new kernel image in arch/i386/boot/bzImage.
|
27 |
|
|
You can also use 'make bzdisk' or 'make bzlilo'.
|
28 |
|
|
|
29 |
|
|
See the lilo documentation for more information on how to use lilo.
|
30 |
|
|
You can also use the 'loadlin' program to boot Linux from MS-DOS.
|
31 |
|
|
|
32 |
|
|
Some computers won't work with 'make bzImage', either due to hardware
|
33 |
|
|
problems or very old versions of lilo or loadlin. If your kernel image
|
34 |
|
|
is small, you may use 'make zImage', 'make zdisk', or 'make zlilo'
|
35 |
|
|
on theses systems.
|
36 |
|
|
|
37 |
|
|
If you find a file name 'vmlinux' in the top directory of the source tree,
|
38 |
|
|
just ignore it. This is an intermediate file and you can't boot from it.
|
39 |
|
|
|
40 |
|
|
Other architectures: the information above is oriented towards the
|
41 |
|
|
i386. On other architectures, there are no 'bzImage' files; simply
|
42 |
|
|
use 'zImage' or 'vmlinux' as appropriate for your architecture.
|
43 |
|
|
|
44 |
|
|
Note: the difference between 'zImage' files and 'bzImage' files is that
|
45 |
|
|
'bzImage' uses a different layout and a different loading algorithm,
|
46 |
|
|
and thus has a larger capacity. Both files use gzip compression.
|
47 |
|
|
The 'bz' in 'bzImage' stands for 'big zImage', not for 'bzip'!
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
=== Top Level Makefile targets
|
52 |
|
|
|
53 |
|
|
Here are the targets available at the top level:
|
54 |
|
|
|
55 |
|
|
make config, make oldconfig, make menuconfig, make xconfig
|
56 |
|
|
|
57 |
|
|
Configure the Linux kernel. You must do this before almost
|
58 |
|
|
anything else.
|
59 |
|
|
|
60 |
|
|
config line-oriented interface
|
61 |
|
|
oldconfig line-oriented interface, re-uses old values
|
62 |
|
|
menuconfig curses-based full-screen interface
|
63 |
|
|
xconfig X window system interface
|
64 |
|
|
|
65 |
|
|
make checkconfig
|
66 |
|
|
|
67 |
|
|
This runs a little perl script that checks the source tree for
|
68 |
|
|
missing instances of #include . Someone needs to
|
69 |
|
|
do this occasionally, because the C preprocessor will silently give
|
70 |
|
|
bad results if these symbols haven't been included (it treats
|
71 |
|
|
undefined symbols in preprocessor directives as defined to 0).
|
72 |
|
|
Superfluous uses of #include are also reported,
|
73 |
|
|
but you can ignore these, because smart CONFIG_* dependencies
|
74 |
|
|
make them harmless.
|
75 |
|
|
|
76 |
|
|
You can run 'make checkconfig' without configuring the kernel.
|
77 |
|
|
Also, 'make checkconfig' does not modify any files.
|
78 |
|
|
|
79 |
|
|
make checkhelp
|
80 |
|
|
|
81 |
|
|
This runs another little perl script that checks the source tree
|
82 |
|
|
for options that are in Config.in files but are not documented
|
83 |
|
|
in scripts/Configure.help. Again, someone needs to do this
|
84 |
|
|
occasionally. If you are adding configuration options, it's
|
85 |
|
|
nice if you do it before you publish your patch!
|
86 |
|
|
|
87 |
|
|
You can run 'make checkhelp' without configuring the kernel.
|
88 |
|
|
Also, 'make checkhelp' does not modify any files.
|
89 |
|
|
|
90 |
|
|
make dep, make depend
|
91 |
|
|
|
92 |
|
|
'make dep' is a synonym for the long form, 'make depend'.
|
93 |
|
|
|
94 |
|
|
This command does two things. First, it computes dependency
|
95 |
|
|
information about which .o files depend on which .h files.
|
96 |
|
|
It records this information in a top-level file named .hdepend
|
97 |
|
|
and in one file per source directory named .depend.
|
98 |
|
|
|
99 |
|
|
Second, if you have CONFIG_MODVERSIONS enabled, 'make dep'
|
100 |
|
|
computes symbol version information for all of the files that
|
101 |
|
|
export symbols (note that both resident and modular files may
|
102 |
|
|
export symbols).
|
103 |
|
|
|
104 |
|
|
If you do not enable CONFIG_MODVERSIONS, you only have to run
|
105 |
|
|
'make dep' once, right after the first time you configure
|
106 |
|
|
the kernel. The .hdepend files and the .depend file are
|
107 |
|
|
independent of your configuration.
|
108 |
|
|
|
109 |
|
|
If you do enable CONFIG_MODVERSIONS, you must run 'make dep'
|
110 |
|
|
every time you change your configuration, because the module
|
111 |
|
|
symbol version information depends on the configuration.
|
112 |
|
|
|
113 |
|
|
[to be continued ...]
|