xref: /titanic_44/usr/src/grub/grub-0.97/INSTALL (revision 1b8adde7ba7d5e04395c141c5400dc2cffd7d809)
1*1b8adde7SWilliam Kucharski-*- Text -*-
2*1b8adde7SWilliam Kucharski
3*1b8adde7SWilliam KucharskiThis is the GRUB.  Welcome.
4*1b8adde7SWilliam Kucharski
5*1b8adde7SWilliam KucharskiThis file contains instructions for compiling and installing the GRUB.
6*1b8adde7SWilliam Kucharski
7*1b8adde7SWilliam KucharskiThe Requirements
8*1b8adde7SWilliam Kucharski================
9*1b8adde7SWilliam Kucharski
10*1b8adde7SWilliam KucharskiGRUB depends on some software packages installed into your system. If
11*1b8adde7SWilliam Kucharskiyou don't have any of them, please obtain and install them before
12*1b8adde7SWilliam Kucharskiconfiguring the GRUB.
13*1b8adde7SWilliam Kucharski
14*1b8adde7SWilliam Kucharski* GCC
15*1b8adde7SWilliam Kucharski
16*1b8adde7SWilliam Kucharski  Probably every recent GCC should work, but we recommend GCC 2.95 and
17*1b8adde7SWilliam Kucharski  later, since you can create smaller binary images. See the web page
18*1b8adde7SWilliam Kucharski  <http://gcc.gnu.org/>.
19*1b8adde7SWilliam Kucharski
20*1b8adde7SWilliam Kucharski* GNU Make
21*1b8adde7SWilliam Kucharski
22*1b8adde7SWilliam Kucharski  For now, the Makefiles produced by Automake depends on GNU Make. See
23*1b8adde7SWilliam Kucharski  the web page <http://www.gnu.org/software/make/make.html>.
24*1b8adde7SWilliam Kucharski
25*1b8adde7SWilliam Kucharski* GNU binutils 2.9.1.0.23 or later
26*1b8adde7SWilliam Kucharski
27*1b8adde7SWilliam Kucharski  Binutils has changed the behavior of 16bit assembler between 2.9.1
28*1b8adde7SWilliam Kucharski  and 2.9.1.0.x, and we support only 2.9.1.0.x and higher. In
29*1b8adde7SWilliam Kucharski  particular, we recommend using binutils 2.10, since it is the only
30*1b8adde7SWilliam Kucharski  public release that supports real 16bit mode. Please take a look at
31*1b8adde7SWilliam Kucharski  the web page <http://sourceware.cygnus.com/binutils/>, for more
32*1b8adde7SWilliam Kucharski  information. Note that you don't have to install it into any system
33*1b8adde7SWilliam Kucharski  directory. See the section "Operation Controls", if you want to
34*1b8adde7SWilliam Kucharski  install binutils into your own directory.
35*1b8adde7SWilliam Kucharski
36*1b8adde7SWilliam KucharskiIf you'd like to develop GRUB, these below are also required. Don't
37*1b8adde7SWilliam Kucharskiforget to specify the option `--enable-maintainer-mode' when running the
38*1b8adde7SWilliam Kucharskiconfigure script.
39*1b8adde7SWilliam Kucharski
40*1b8adde7SWilliam Kucharski* Texinfo 4.0 or later
41*1b8adde7SWilliam Kucharski
42*1b8adde7SWilliam Kucharski  We use some new macros in the documents, so you need a recent
43*1b8adde7SWilliam Kucharski  Texinfo release. See the web page
44*1b8adde7SWilliam Kucharski  <http://www.gnu.org/software/texinfo/texinfo.html>.
45*1b8adde7SWilliam Kucharski
46*1b8adde7SWilliam Kucharski* Developers: GNU Autoconf 2.5x and GNU Automake 1.7 or later
47*1b8adde7SWilliam Kucharski
48*1b8adde7SWilliam Kucharski  You should not need Automake just to compile GRUB, but you will need
49*1b8adde7SWilliam Kucharski  it if you edit any of the build files (Makefile.am, configure.in,
50*1b8adde7SWilliam Kucharski  etc).  We use the new "per-executable flags" feature found in the
51*1b8adde7SWilliam Kucharski  latest release of automake.  See the web page
52*1b8adde7SWilliam Kucharski  <http://www.gnu.org/software/automake/automake.html>.
53*1b8adde7SWilliam Kucharski
54*1b8adde7SWilliam Kucharski
55*1b8adde7SWilliam KucharskiConfiguring the GRUB
56*1b8adde7SWilliam Kucharski====================
57*1b8adde7SWilliam Kucharski
58*1b8adde7SWilliam KucharskiThe `configure' shell script attempts to guess correct values for
59*1b8adde7SWilliam Kucharskivarious system-dependent variables used during compilation.  It uses
60*1b8adde7SWilliam Kucharskithose values to create a `Makefile' in each directory of the package.
61*1b8adde7SWilliam KucharskiIt may also create one or more `.h' files containing system-dependent
62*1b8adde7SWilliam Kucharskidefinitions.  Finally, it creates a shell script `config.status' that
63*1b8adde7SWilliam Kucharskiyou can run in the future to recreate the current configuration, a
64*1b8adde7SWilliam Kucharskifile `config.cache' that saves the results of its tests to speed up
65*1b8adde7SWilliam Kucharskireconfiguring, and a file `config.log' containing compiler output
66*1b8adde7SWilliam Kucharski(useful mainly for debugging `configure').
67*1b8adde7SWilliam Kucharski
68*1b8adde7SWilliam KucharskiIf you need to do unusual things to compile the package, please try to
69*1b8adde7SWilliam Kucharskifigure out how `configure' could check whether to do them, and mail
70*1b8adde7SWilliam Kucharskidiffs or instructions to the address given in the `README' so they can
71*1b8adde7SWilliam Kucharskibe considered for the next release.  If at some point `config.cache'
72*1b8adde7SWilliam Kucharskicontains results you don't want to keep, you may remove or edit it.
73*1b8adde7SWilliam Kucharski
74*1b8adde7SWilliam KucharskiThe file `configure.in' is used to create `configure' by a program
75*1b8adde7SWilliam Kucharskicalled `autoconf'.  You only need `configure.in' if you want to change
76*1b8adde7SWilliam Kucharskiit or regenerate `configure' using a newer version of `autoconf'.
77*1b8adde7SWilliam Kucharski
78*1b8adde7SWilliam Kucharski
79*1b8adde7SWilliam KucharskiBuilding the GRUB
80*1b8adde7SWilliam Kucharski=================
81*1b8adde7SWilliam Kucharski
82*1b8adde7SWilliam KucharskiThe simplest way to compile this package is:
83*1b8adde7SWilliam Kucharski
84*1b8adde7SWilliam Kucharski  1. `cd' to the directory containing the package's source code and
85*1b8adde7SWilliam Kucharski     type `./configure' to configure the package for your system.  If
86*1b8adde7SWilliam Kucharski     you're using `csh' on an old version of System V, you might need
87*1b8adde7SWilliam Kucharski     to type `sh ./configure' instead to prevent `csh' from trying to
88*1b8adde7SWilliam Kucharski     execute `configure' itself.
89*1b8adde7SWilliam Kucharski
90*1b8adde7SWilliam Kucharski     Running `configure' takes awhile.  While running, it prints some
91*1b8adde7SWilliam Kucharski     messages telling which features it is checking for.
92*1b8adde7SWilliam Kucharski
93*1b8adde7SWilliam Kucharski  2. Type `make' to compile the package.
94*1b8adde7SWilliam Kucharski
95*1b8adde7SWilliam Kucharski  3. Optionally, type `make check' to run any self-tests that come with
96*1b8adde7SWilliam Kucharski     the package.
97*1b8adde7SWilliam Kucharski
98*1b8adde7SWilliam Kucharski  4. Type `make install' to install the programs and any data files and
99*1b8adde7SWilliam Kucharski     documentation.
100*1b8adde7SWilliam Kucharski
101*1b8adde7SWilliam Kucharski  5. You can remove the program binaries and object files from the
102*1b8adde7SWilliam Kucharski     source code directory by typing `make clean'.  To also remove the
103*1b8adde7SWilliam Kucharski     files that `configure' created (so you can compile the package for
104*1b8adde7SWilliam Kucharski     a different kind of computer), type `make distclean'.  There is
105*1b8adde7SWilliam Kucharski     also a `make maintainer-clean' target, but that is intended mainly
106*1b8adde7SWilliam Kucharski     for the package's developers.  If you use it, you may have to get
107*1b8adde7SWilliam Kucharski     all sorts of other programs in order to regenerate files that came
108*1b8adde7SWilliam Kucharski     with the distribution.
109*1b8adde7SWilliam Kucharski
110*1b8adde7SWilliam Kucharski
111*1b8adde7SWilliam KucharskiCompiling For Multiple Architectures
112*1b8adde7SWilliam Kucharski====================================
113*1b8adde7SWilliam Kucharski
114*1b8adde7SWilliam KucharskiYou can compile the package for more than one kind of computer at the
115*1b8adde7SWilliam Kucharskisame time, by placing the object files for each architecture in their
116*1b8adde7SWilliam Kucharskiown directory.  `cd' to the directory where you want the object files
117*1b8adde7SWilliam Kucharskiand executables to go and run the `configure' script.  `configure'
118*1b8adde7SWilliam Kucharskiautomatically checks for the source code in the directory that
119*1b8adde7SWilliam Kucharski`configure' is in and in `..'.
120*1b8adde7SWilliam Kucharski
121*1b8adde7SWilliam Kucharski
122*1b8adde7SWilliam KucharskiInstallation Names
123*1b8adde7SWilliam Kucharski==================
124*1b8adde7SWilliam Kucharski
125*1b8adde7SWilliam KucharskiBy default, `make install' will install the package's files in
126*1b8adde7SWilliam Kucharski`/usr/local/bin', `/usr/local/man', etc.  You can specify an
127*1b8adde7SWilliam Kucharskiinstallation prefix by giving `configure' the option `--prefix=PATH'.
128*1b8adde7SWilliam Kucharski
129*1b8adde7SWilliam KucharskiYou can specify separate installation prefixes for
130*1b8adde7SWilliam Kucharskiarchitecture-specific files and architecture-independent files.  If
131*1b8adde7SWilliam Kucharskiyou give `configure' the option `--exec-prefix=PATH', the package will
132*1b8adde7SWilliam Kucharskiuse PATH as the prefix for installing programs and libraries.
133*1b8adde7SWilliam KucharskiDocumentation and other data files will still use the regular prefix.
134*1b8adde7SWilliam Kucharski
135*1b8adde7SWilliam KucharskiIn addition, if you use an unusual directory layout you can give
136*1b8adde7SWilliam Kucharskioptions like `--bindir=PATH' to specify different values for
137*1b8adde7SWilliam Kucharskiparticular kinds of files.  Run `configure --help' for a list of the
138*1b8adde7SWilliam Kucharskidirectories you can set and what kinds of files go in them.
139*1b8adde7SWilliam Kucharski
140*1b8adde7SWilliam KucharskiIf the package supports it, you can cause programs to be installed
141*1b8adde7SWilliam Kucharskiwith an extra prefix or suffix on their names by giving `configure'
142*1b8adde7SWilliam Kucharskithe option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
143*1b8adde7SWilliam Kucharski
144*1b8adde7SWilliam KucharskiPlease note, however, that the GRUB knows where it is located in the
145*1b8adde7SWilliam Kucharskifilesystem.  If you have installed it in an unusual location, the
146*1b8adde7SWilliam Kucharskisystem might not work properly, or at all.  The chief utility of these
147*1b8adde7SWilliam Kucharskioptions for the GRUB is to allow you to "install" in some alternate
148*1b8adde7SWilliam Kucharskilocation, and then copy these to the actual root filesystem later.
149*1b8adde7SWilliam Kucharski
150*1b8adde7SWilliam Kucharski
151*1b8adde7SWilliam KucharskiSharing Defaults
152*1b8adde7SWilliam Kucharski================
153*1b8adde7SWilliam Kucharski
154*1b8adde7SWilliam KucharskiIf you want to set default values for `configure' scripts to share,
155*1b8adde7SWilliam Kucharskiyou can create a site shell script called `config.site' that gives
156*1b8adde7SWilliam Kucharskidefault values for variables like `CC', `cache_file', and `prefix'.
157*1b8adde7SWilliam Kucharski`configure' looks for `PREFIX/share/config.site' if it exists, then
158*1b8adde7SWilliam Kucharski`PREFIX/etc/config.site' if it exists.  Or, you can set the
159*1b8adde7SWilliam Kucharski`CONFIG_SITE' environment variable to the location of the site script.
160*1b8adde7SWilliam KucharskiA warning: not all `configure' scripts look for a site script.
161*1b8adde7SWilliam Kucharski
162*1b8adde7SWilliam Kucharski
163*1b8adde7SWilliam KucharskiOperation Controls
164*1b8adde7SWilliam Kucharski==================
165*1b8adde7SWilliam Kucharski
166*1b8adde7SWilliam Kucharski   `configure' recognizes the following options to control how it
167*1b8adde7SWilliam Kucharskioperates.
168*1b8adde7SWilliam Kucharski
169*1b8adde7SWilliam Kucharski`--cache-file=FILE'
170*1b8adde7SWilliam Kucharski     Use and save the results of the tests in FILE instead of
171*1b8adde7SWilliam Kucharski     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
172*1b8adde7SWilliam Kucharski     debugging `configure'.
173*1b8adde7SWilliam Kucharski
174*1b8adde7SWilliam Kucharski`--help'
175*1b8adde7SWilliam Kucharski     Print a summary of the options to `configure', and exit.
176*1b8adde7SWilliam Kucharski
177*1b8adde7SWilliam Kucharski`--quiet'
178*1b8adde7SWilliam Kucharski`--silent'
179*1b8adde7SWilliam Kucharski`-q'
180*1b8adde7SWilliam Kucharski     Do not print messages saying which checks are being made.
181*1b8adde7SWilliam Kucharski
182*1b8adde7SWilliam Kucharski`--srcdir=DIR'
183*1b8adde7SWilliam Kucharski     Look for the package's source code in directory DIR.  Usually
184*1b8adde7SWilliam Kucharski     `configure' can determine that directory automatically.
185*1b8adde7SWilliam Kucharski
186*1b8adde7SWilliam Kucharski`--version'
187*1b8adde7SWilliam Kucharski     Print the version of Autoconf used to generate the `configure'
188*1b8adde7SWilliam Kucharski     script, and exit.
189*1b8adde7SWilliam Kucharski
190*1b8adde7SWilliam Kucharski`--enable-maintainer-mode'
191*1b8adde7SWilliam Kucharski     Enable make rules and dependencies not useful (and sometimes
192*1b8adde7SWilliam Kucharski     confusing) to the casual installer. If you are a GRUB developer,
193*1b8adde7SWilliam Kucharski     it is a good idea to specify this option.
194*1b8adde7SWilliam Kucharski
195*1b8adde7SWilliam Kucharski`--disable-ext2fs'
196*1b8adde7SWilliam Kucharski     Omit the ext2fs support in Stage 2.
197*1b8adde7SWilliam Kucharski
198*1b8adde7SWilliam Kucharski`--disable-fat'
199*1b8adde7SWilliam Kucharski     Omit the FAT support in Stage 2.
200*1b8adde7SWilliam Kucharski
201*1b8adde7SWilliam Kucharski`--disable-ffs'
202*1b8adde7SWilliam Kucharski     Omit the FFS support in Stage 2.
203*1b8adde7SWilliam Kucharski
204*1b8adde7SWilliam Kucharski`--disable-minix'
205*1b8adde7SWilliam Kucharski     Omit the Minix fs support in Stage 2.
206*1b8adde7SWilliam Kucharski
207*1b8adde7SWilliam Kucharski`--disable-reiserfs'
208*1b8adde7SWilliam Kucharski     Omit the ReiserFS support in Stage 2.
209*1b8adde7SWilliam Kucharski
210*1b8adde7SWilliam Kucharski`--disable-vstafs'
211*1b8adde7SWilliam Kucharski     Omit the VSTa filesystem support in Stage 2.
212*1b8adde7SWilliam Kucharski
213*1b8adde7SWilliam Kucharski`--disable-jfs'
214*1b8adde7SWilliam Kucharski     Omit the JFS support in Stage 2.
215*1b8adde7SWilliam Kucharski
216*1b8adde7SWilliam Kucharski`--disable-xfs'
217*1b8adde7SWilliam Kucharski     Omit the XFS support in Stage 2.
218*1b8adde7SWilliam Kucharski
219*1b8adde7SWilliam Kucharski`--disable-ufs2'
220*1b8adde7SWilliam Kucharski     Omit the UFS2 support in Stage 2.
221*1b8adde7SWilliam Kucharski
222*1b8adde7SWilliam Kucharski`--disable-iso9660'
223*1b8adde7SWilliam Kucharski     Omit the ISO9660 support in Stage 2.
224*1b8adde7SWilliam Kucharski
225*1b8adde7SWilliam Kucharski`--disable-gunzip'
226*1b8adde7SWilliam Kucharski     Omit the decompression support in Stage 2.
227*1b8adde7SWilliam Kucharski
228*1b8adde7SWilliam Kucharski`--disable-md5-password'
229*1b8adde7SWilliam Kucharski     Omit the MD5 password support in Stage2.
230*1b8adde7SWilliam Kucharski
231*1b8adde7SWilliam Kucharski`--with-binutils=PATH'
232*1b8adde7SWilliam Kucharski     Search the path PATH to find binutils. If you have installed your
233*1b8adde7SWilliam Kucharski     binutils executables into an unusual location where GCC doesn't
234*1b8adde7SWilliam Kucharski     search by default, use this option.
235*1b8adde7SWilliam Kucharski
236*1b8adde7SWilliam Kucharski`--without-curses'
237*1b8adde7SWilliam Kucharski     Don't use the curses library.
238*1b8adde7SWilliam Kucharski
239*1b8adde7SWilliam Kucharski`--disable-hercules'
240*1b8adde7SWilliam Kucharski     Omit the hercules console support in Stage 2.
241*1b8adde7SWilliam Kucharski
242*1b8adde7SWilliam Kucharski`--disable-serial'
243*1b8adde7SWilliam Kucharski     Omit the serial terminal support in Stage 2.
244*1b8adde7SWilliam Kucharski
245*1b8adde7SWilliam Kucharski`--enable-serial-speed-simulation'
246*1b8adde7SWilliam Kucharski     Simulate the slowness of a serial device in the grub shell. This
247*1b8adde7SWilliam Kucharski     option is useful for GRUB developers, as you can test the
248*1b8adde7SWilliam Kucharski     performance of a terminal emulation even on pseudo terminals.
249*1b8adde7SWilliam Kucharski
250*1b8adde7SWilliam Kucharski`--enable-preset-menu=FILE'
251*1b8adde7SWilliam Kucharski     Preset a menu file FILE in Stage 2. This is useful, if you cannot
252*1b8adde7SWilliam Kucharski     put a configuration file on a filesystem for some reason (e.g. when
253*1b8adde7SWilliam Kucharski     you need to set the default terminal to a serial terminal in an
254*1b8adde7SWilliam Kucharski     embedded system).
255*1b8adde7SWilliam Kucharski
256*1b8adde7SWilliam Kucharski`--enable-example-kernel'
257*1b8adde7SWilliam Kucharski     Build the example Multiboot kernel in the directory "docs". You
258*1b8adde7SWilliam Kucharski     will be able to boot the image "kernel" with GRUB.
259*1b8adde7SWilliam Kucharski
260*1b8adde7SWilliam Kucharski`--disable-auto-linux-mem-opt'
261*1b8adde7SWilliam Kucharski     Don't pass the "mem=" option automatically, when booting Linux.
262*1b8adde7SWilliam Kucharski     You can also disable the feature at run time.
263*1b8adde7SWilliam Kucharski
264*1b8adde7SWilliam Kucharski
265*1b8adde7SWilliam Kucharski`configure' also accepts several options for the network support. See
266*1b8adde7SWilliam Kucharskithe file `netboot/README.netboot', for more information.
267