1These installation instructions are copied from the VMIPS Manual. For
2bug-reporting instructions, please see the README file in the source
3distribution, or read the VMIPS Manual.
4
5
6Appendix A Installation
7***********************
8
9VMIPS uses the GNU Autoconf/Automake system for configuration
10management.  This provides the familiar `configure' shell script
11interface for setting configuration variables before compiling VMIPS.
12This means that the traditional `./configure; make; make install'
13sequence should work.  For more information about the special options
14that VMIPS `configure' accepts, read on, or give the `--help' option to
15`configure' for an abridged version.
16
17A.1 Prerequisites
18=================
19
20The VMIPS build process assumes that you have a C++ compiler installed
21on the host machine. Any reasonably recent, ISO C++-compliant compiler
22with working template function handling should work.  Some ancient
23compilers, such as the system compiler on Red Hat Linux 6.x systems,
24will not work. `configure' contains checks for a few known compiler
25problems which will prevent VMIPS from working, and will print an error
26message if it detects such a problem.
27
28   If you want to build any of the sample code which is included with
29the VMIPS source distribution, you must have a full set of GNU MIPS
30cross compilation tools installed when you configure VMIPS.  You will
31need to tell `configure' the configuration prefix you used to install
32the MIPS tools, by specifying it as the value to the `--with-mips'
33argument. For example, if your MIPS cross compiler is
34`/opt/mipsTools/bin/mips-dec-ultrix4.3-gcc', then you should specify
35`--with-mips=/opt/mipsTools' on the `configure' command line.
36Additionally, you will also need to tell `configure' the target you
37used to configure the MIPS cross tools, by specifying it as the value
38to the `--target' argument (see below).  For a concise summary of how
39to build the necessary MIPS cross tools, read "Building MIPS Cross
40Tools", below.
41
42   If you want to run the test suite, you must additionally have Expect
43and DejaGNU installed (any version published since 2000 should be
44fine). Once VMIPS is compiled, you can type `make check' to run the
45test suite.
46
47A.2 Building from CVS
48=====================
49
50If you retrieved your sources from the CVS repository, you will need
51Automake version 1.11.1 or later, Autoconf version 2.68 or later, and
52libtool 2.2.10 or later.  You will need perl 5 to build the
53documentation.  Your distribution will be missing many important files,
54including `configure'. To generate these, run `utils/bootstrap'. To
55automatically run configure once it has been generated, you can run
56`utils/bootstrap -c CONFIGURE-ARGS'.
57
58A.3 Options that configure supports
59===================================
60
61If you want to build VMIPS with particular compiler optimizations or
62with debug symbols, see the example in `INSTALL' describing how you can
63set CFLAGS. You will want to do the same for CXXFLAGS.  By default, if
64your system compiler is GNU gcc, VMIPS will be built using `-g -O2'.
65
66   Some of the interesting options that `configure' supports are as
67follows:
68
69`--target=T'
70     Specify the target used to configure your MIPS cross tools. `T'
71     must match the value of the `--target' option provided to GNU
72     Binutils `configure'.
73
74`--with-mips=MDIR'
75     Specify installation prefix of MIPS cross tools (default MDIR =
76     /opt/mips).  If you do not have MIPS cross tools, the VMIPS test
77     suite will not be available and sample code will not be built. If
78     you want `configure' to ignore your MIPS cross tools, you can
79     indicate this by specifying `--without-mips'.
80
81     This flag is used to set the default value of the vmipsrc
82     `mipstoolprefix' option. You can always edit the `mipstoolprefix'
83     option setting in `/etc/vmipsrc' after installation if you want to
84     change its value.
85
86`--with-mips-bin=DIR'
87     Specify path to MIPS cross tools' executables (default MDIR/bin).
88     This option may be useful as an override if -with-mips isn't
89     working for you, but beware -- it is rarely tested by the
90     developers.
91
92`--with-mips-endianness=VAL'
93     Specify the default endianness of the VMIPS simulated machine,
94     which must match the MIPS cross tools target's endianness.  VAL
95     may be specified as `big' or `little'.  If you have installed MIPS
96     cross tools, it is best to let configure guess this (which it will
97     do by running `mips-objdump -i'), unless you have reason to
98     believe it is guessing wrong, because if you get it wrong,
99     vmipstool may compile ROMs that do not run correctly under vmips.
100     If you are configuring without MIPS cross tools installed, this
101     will default to little-endian.
102
103     This flag is used to set the default value of the vmipsrc
104     `bigendian' option. You can always edit the `bigendian' option
105     setting in `/etc/vmipsrc' after installation if you want to change
106     this value.
107
108`--enable-profiling'
109     Include (default=do not include) profiling instrumentation in the
110     VMIPS binary. This is only interesting if you are maintaining
111     VMIPS and trying to figure out why it is running more slowly than
112     it should be. When we last tried it, this option didn't seem to
113     work very well on Mac OS X.
114
115
116A.4 Post-Installation Setup
117===========================
118
119If you are an end-user with a binary package for VMIPS and a MIPS cross
120compiler, you will probably want to make Vmipstool use the cross
121compiler when you run commands such as `vmipstool --compile'.
122
123   You should edit your `/etc/vmipsrc' or `~/.vmipsrc' file and change
124the `bigendian' and `mipstoolprefix' options to correspond to the
125installed MIPS cross tools. (See the `Customizing' chapter for more
126information on the syntax of these options.) Then, test it by trying to
127compile a C file by running `vmipstool --compile -c foo.c'. You should
128get an object file (`foo.o') of the right endianness and object format;
129you can check this using the `file' command on most Unix systems.
130
131A.5 Packaging VMIPS
132===================
133
134If you are a system integrator or distributor who is building a package
135for VMIPS intended for distribution, you may be able to start by
136looking at the RPM vmips.spec file or the Debian dpkg packaging files
137included in the source distribution.
138
139   Your VMIPS package need not require a set of MIPS cross tools either
140at the build or install stage.  Starting with VMIPS 1.2, it is
141perfectly possible to build VMIPS without a cross-compiler,
142cross-assembler, or cross-linker.  Vmipstool will not be very useful
143without cross-tools, but it will build; however, an end-user can
144install cross-tools and edit the system-wide `vmipsrc' file to make the
145`mipstoolprefix' option value contain their location.
146
147   The VMIPS binary package should probably include the following files:
148   * the two executables `vmips' and `vmipstool'
149
150   * the two man pages `vmips.1' and `vmipstool.1'
151
152   * the VMIPS Programmer's Manual in some format (for example, the
153     Info file `vmips.info')
154
155   * the default GNU linker script used by vmipstool, `ld.script'
156
157   * the system-wide configuration file `/etc/vmipsrc'
158
159   * the assembler convenience header file `asm_regnames.h'
160
161   Help keep VMIPS free! As VMIPS is released under the GNU General
162Public License, please make an effort to distribute sources (or at
163least, post a link to the sources) if you distribute binaries or binary
164packages. Thanks!
165
166A.6 Building MIPS Cross Tools
167=============================
168
169First decide on an installation prefix. The following examples will use
170the prefix `/opt/mips', as above, which is the default place that the
171VMIPS `configure' script looks for them; you can however use any prefix
172you wish.
173
174   Download a copy of Binutils, from any GNU mirror, or from the URL:
175     `ftp://sources.redhat.com/pub/binutils/releases'
176   The most recently-tested version is 2.20.1.
177
178   Build binutils by running the following commands.  We recommend
179`--disable-nls' because some versions do not build correctly with NLS
180(linking against `libopcodes.a' results in unresolved symbols.)
181
182     ./configure --target=mipsel-ecoff --prefix=/opt/mips \
183      --disable-nls --disable-shared
184     make
185     make install install-info
186
187   Download a copy of the GNU Compiler Collection (`gcc') from any GNU
188mirror, or from the URL:
189     `ftp://gcc.gnu.org/pub/gcc/releases'
190
191   Our examples assume that you want to use the ECOFF binary format, so
192we recommend you get gcc version 3.0.4.  If you would prefer to use the
193ELF binary format, pretty much any recent version of gcc will work, but
194note that you will need to pass `--target=mips-elf' instead of
195`--target=mipsel-ecoff' when configuring both binutils and gcc. We have
196most recently tested version 4.2.4 with the ELF format.
197
198   You can read the documentation for building the compiler by pointing
199your World-Wide Web browser at `http://gcc.gnu.org/install'.  When you
200encounter difficulties, you should consider consulting the
201documentation for building the compiler, because it is more complete
202than the following summary.
203
204  1. Unpack the sources. Let's say you unpack them in `/usr/build',
205     creating the directory `/usr/build/gcc-3.0.4'.
206
207  2. Create the build directory `/usr/build/gcc-mips-build'.
208
209  3. First, add the directory `/opt/mips/bin' (where you just installed
210     Binutils) to your path, so that the compiler configuration process
211     can find your MIPS-targetted assembler and linker.
212
213  4. Configure the compiler. Change to the directory
214     `/usr/build/gcc-mips-build' and issue the following command. (The
215     back-slash characters represent the usual Unix shell convention of
216     continuing a command on the following line, and are inserted for
217     typesetting purposes.)
218
219          ../gcc-3.0.4/configure --target=mipsel-ecoff \
220           --prefix=/opt/mips --with-gnu-as --with-gnu-ld \
221           --disable-threads --disable-nls --disable-shared \
222           --enable-languages=c
223
224  5. If the configuration step fails, make sure you have a working
225     native compiler, and/or try a different version of gcc. Otherwise,
226     proceed to compile the compiler:
227
228          make -k MAKE='make -k TARGET_LIBGCC2_CFLAGS=-Dinhibit_libc' cross
229          make -k LANGUAGES=c install
230
231     The reason `make -k' is required is because some parts of the gcc
232     toolkit may fail to build, but the compiler itself may be OK.
233
234     The `-Dinhibit_libc' option is required when you are building the
235     compiler in the absence of a MIPS C library, as is often the case
236     with VMIPS users.
237
238     Do not be alarmed by errors in building or installing the compiler;
239     the cross compiler install interface is less than polished.
240
241  6. You should be able to use the newly-installed  compiler to compile
242     (but not link) a program that does not use any C library functions.
243     If this works, you should be able to use the cross tools you have
244     just built for VMIPS.
245
246  7. If you want to use the GNU debugger (GDB) to debug MIPS programs
247     running on VMIPS, you can build that now.
248
249       1. Download a copy of the GNU debugger from any GNU mirror, or
250          from the URL:
251               `ftp://ftp.gnu.org/pub/gnu/gdb/'
252          We recommend version 6.0 or later. Download the file
253          `gdb-6.0.tar.gz'.
254
255       2. Unpack the file and change to the directory `gdb-6.0'.
256
257       3. Type the following commands to configure and build GDB:
258               ./configure --prefix=/opt/mips --target=mipsel-ecoff
259               make
260               make install install-info
261
262       4. You can now use the newly installed `mipsel-ecoff-gdb' to
263          debug programs with VMIPS, as described in the "Debugging"
264          section of the manual.
265
266  8. If you want to build a MIPS C library, you can also do that now,
267     but it is not strictly required for many useful VMIPS tasks.
268
269     Here is how to build the uClibc C library for use with VMIPS:
270
271     As noted in the uClibc INSTALL file, you will need Linux kernel
272     sources.  Just pick a recent version of Linux 2.4; you can
273     download it from `http://www.kernel.org' or one of its mirrors, if
274     you don't have it handy.  You will need to configure (but not
275     build) the Linux kernel for MIPS. Here's how:
276
277        * Edit `linux/Makefile', setting ARCH to `mips' and setting
278          CROSS_COMPILE to a value that corresponds to the path where
279          your MIPS cross compiler is installed, for example:
280          `/opt/mips-elf/bin/mips-elf-' (this is just like
281          `mipstoolprefix' in your `vmipsrc' file).
282
283        * Copy `arch/mips/defconfig' to `.config'.
284
285        * Run `make oldconfig' and `make dep'.
286
287     Next, download uClibc from `http://www.uclibc.org', and unpack it
288     next to the Linux kernel sources. The last version we tested was
289     0.9.29.  Read the `INSTALL' file in that distribution.
290
291     When you configure uClibc with `make config', be sure to pick
292     `mips' as your Target Architecture, and `Generic (MIPS I)' as your
293     Target Processor. Be sure to pick the correct endianness (that is,
294     the one which corresponds to the default endianness of your cross
295     tools.) You should be sure to answer yes to 'Target CPU has a
296     memory management unit (MMU)' and no to 'Enable floating point
297     number support', because current versions of VMIPS do not include
298     floating-point support.  If you are intending to use uClibc to
299     build ROMs, you will probably want to turn off
300     position-independent code and shared library support.  Turn on
301     only those other features of uClibc as you expect you will need.
302
303     Create a new directory into which uClibc will be installed.  This
304     will be your PREFIX.
305
306     Run `make CROSS=/opt/mips-elf/bin/mips-elf-' to build uClibc. For
307     CROSS, you should use the same value as you used for CROSS_COMPILE
308     in the Linux Makefile, above.
309
310     Run `make CROSS=... PREFIX=... RUNTIME_PREFIX=/ DEVEL_PREFIX=/usr/
311     install' to install it, specifying the same CROSS value and the
312     name of the directory created earlier as PREFIX.  In the directory
313     you specified for PREFIX, you will now have `usr/include' and
314     `usr/lib' subdirectories. You will now want to rebuild GCC,
315     specifying these directories using the `--with-headers' and
316     `--with-libs' options to the GCC `configure' script, respectively.
317     This will cause the directories to be copied to
318
319        * PREFIX/TARGET-TRIPLET/lib  (for libraries)
320
321        * PREFIX/TARGET-TRIPLET/sys-include  (for includes)
322
323
324The remainder of this file represents generic (i.e., not VMIPS-specific)
325instructions for using "configure".
326
327Installation Instructions
328*************************
329
330Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
331Inc.
332
333   Copying and distribution of this file, with or without modification,
334are permitted in any medium without royalty provided the copyright
335notice and this notice are preserved.  This file is offered as-is,
336without warranty of any kind.
337
338Basic Installation
339==================
340
341   Briefly, the shell commands './configure; make; make install' should
342configure, build, and install this package.  The following
343more-detailed instructions are generic; see the 'README' file for
344instructions specific to this package.  Some packages provide this
345'INSTALL' file but do not implement all of the features documented
346below.  The lack of an optional feature in a given package is not
347necessarily a bug.  More recommendations for GNU packages can be found
348in *note Makefile Conventions: (standards)Makefile Conventions.
349
350   The 'configure' shell script attempts to guess correct values for
351various system-dependent variables used during compilation.  It uses
352those values to create a 'Makefile' in each directory of the package.
353It may also create one or more '.h' files containing system-dependent
354definitions.  Finally, it creates a shell script 'config.status' that
355you can run in the future to recreate the current configuration, and a
356file 'config.log' containing compiler output (useful mainly for
357debugging 'configure').
358
359   It can also use an optional file (typically called 'config.cache'
360and enabled with '--cache-file=config.cache' or simply '-C') that saves
361the results of its tests to speed up reconfiguring.  Caching is
362disabled by default to prevent problems with accidental use of stale
363cache files.
364
365   If you need to do unusual things to compile the package, please try
366to figure out how 'configure' could check whether to do them, and mail
367diffs or instructions to the address given in the 'README' so they can
368be considered for the next release.  If you are using the cache, and at
369some point 'config.cache' contains results you don't want to keep, you
370may remove or edit it.
371
372   The file 'configure.ac' (or 'configure.in') is used to create
373'configure' by a program called 'autoconf'.  You need 'configure.ac' if
374you want to change it or regenerate 'configure' using a newer version
375of 'autoconf'.
376
377   The simplest way to compile this package is:
378
379  1. 'cd' to the directory containing the package's source code and type
380     './configure' to configure the package for your system.
381
382     Running 'configure' might take a while.  While running, it prints
383     some messages telling which features it is checking for.
384
385  2. Type 'make' to compile the package.
386
387  3. Optionally, type 'make check' to run any self-tests that come with
388     the package, generally using the just-built uninstalled binaries.
389
390  4. Type 'make install' to install the programs and any data files and
391     documentation.  When installing into a prefix owned by root, it is
392     recommended that the package be configured and built as a regular
393     user, and only the 'make install' phase executed with root
394     privileges.
395
396  5. Optionally, type 'make installcheck' to repeat any self-tests, but
397     this time using the binaries in their final installed location.
398     This target does not install anything.  Running this target as a
399     regular user, particularly if the prior 'make install' required
400     root privileges, verifies that the installation completed
401     correctly.
402
403  6. You can remove the program binaries and object files from the
404     source code directory by typing 'make clean'.  To also remove the
405     files that 'configure' created (so you can compile the package for
406     a different kind of computer), type 'make distclean'.  There is
407     also a 'make maintainer-clean' target, but that is intended mainly
408     for the package's developers.  If you use it, you may have to get
409     all sorts of other programs in order to regenerate files that came
410     with the distribution.
411
412  7. Often, you can also type 'make uninstall' to remove the installed
413     files again.  In practice, not all packages have tested that
414     uninstallation works correctly, even though it is required by the
415     GNU Coding Standards.
416
417  8. Some packages, particularly those that use Automake, provide `make
418     distcheck', which can by used by developers to test that all other
419     targets like 'make install' and 'make uninstall' work correctly.
420     This target is generally not run by end users.
421
422Compilers and Options
423=====================
424
425   Some systems require unusual options for compilation or linking that
426the 'configure' script does not know about.  Run './configure --help'
427for details on some of the pertinent environment variables.
428
429   You can give 'configure' initial values for configuration parameters
430by setting variables in the command line or in the environment.  Here
431is an example:
432
433     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
434
435   *Note Defining Variables::, for more details.
436
437Compiling For Multiple Architectures
438====================================
439
440   You can compile the package for more than one kind of computer at the
441same time, by placing the object files for each architecture in their
442own directory.  To do this, you can use GNU 'make'.  'cd' to the
443directory where you want the object files and executables to go and run
444the 'configure' script.  'configure' automatically checks for the
445source code in the directory that 'configure' is in and in '..'.  This
446is known as a "VPATH" build.
447
448   With a non-GNU 'make', it is safer to compile the package for one
449architecture at a time in the source code directory.  After you have
450installed the package for one architecture, use 'make distclean' before
451reconfiguring for another architecture.
452
453   On MacOS X 10.5 and later systems, you can create libraries and
454executables that work on multiple system types--known as "fat" or
455"universal" binaries--by specifying multiple '-arch' options to the
456compiler but only a single '-arch' option to the preprocessor.  Like
457this:
458
459     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
460                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
461                 CPP="gcc -E" CXXCPP="g++ -E"
462
463   This is not guaranteed to produce working output in all cases, you
464may have to build one architecture at a time and combine the results
465using the 'lipo' tool if you have problems.
466
467Installation Names
468==================
469
470   By default, 'make install' installs the package's commands under
471'/usr/local/bin', include files under '/usr/local/include', etc.  You
472can specify an installation prefix other than '/usr/local' by giving
473'configure' the option '--prefix=PREFIX', where PREFIX must be an
474absolute file name.
475
476   You can specify separate installation prefixes for
477architecture-specific files and architecture-independent files.  If you
478pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
479PREFIX as the prefix for installing programs and libraries.
480Documentation and other data files still use the regular prefix.
481
482   In addition, if you use an unusual directory layout you can give
483options like '--bindir=DIR' to specify different values for particular
484kinds of files.  Run 'configure --help' for a list of the directories
485you can set and what kinds of files go in them.  In general, the
486default for these options is expressed in terms of '${prefix}', so that
487specifying just '--prefix' will affect all of the other directory
488specifications that were not explicitly provided.
489
490   The most portable way to affect installation locations is to pass the
491correct locations to 'configure'; however, many packages provide one or
492both of the following shortcuts of passing variable assignments to the
493'make install' command line to change installation locations without
494having to reconfigure or recompile.
495
496   The first method involves providing an override variable for each
497affected directory.  For example, `make install
498prefix=/alternate/directory' will choose an alternate location for all
499directory configuration variables that were expressed in terms of
500'${prefix}'.  Any directories that were specified during 'configure',
501but not in terms of '${prefix}', must each be overridden at install
502time for the entire installation to be relocated.  The approach of
503makefile variable overrides for each directory variable is required by
504the GNU Coding Standards, and ideally causes no recompilation.
505However, some platforms have known limitations with the semantics of
506shared libraries that end up requiring recompilation when using this
507method, particularly noticeable in packages that use GNU Libtool.
508
509   The second method involves providing the 'DESTDIR' variable.  For
510example, 'make install DESTDIR=/alternate/directory' will prepend
511'/alternate/directory' before all installation names.  The approach of
512'DESTDIR' overrides is not required by the GNU Coding Standards, and
513does not work on platforms that have drive letters.  On the other hand,
514it does better at avoiding recompilation issues, and works well even
515when some directory options were not specified in terms of '${prefix}'
516at 'configure' time.
517
518Optional Features
519=================
520
521   If the package supports it, you can cause programs to be installed
522with an extra prefix or suffix on their names by giving 'configure' the
523option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
524
525   Some packages pay attention to '--enable-FEATURE' options to
526'configure', where FEATURE indicates an optional part of the package.
527They may also pay attention to '--with-PACKAGE' options, where PACKAGE
528is something like 'gnu-as' or 'x' (for the X Window System).  The
529'README' should mention any '--enable-' and '--with-' options that the
530package recognizes.
531
532   For packages that use the X Window System, 'configure' can usually
533find the X include and library files automatically, but if it doesn't,
534you can use the 'configure' options '--x-includes=DIR' and
535'--x-libraries=DIR' to specify their locations.
536
537   Some packages offer the ability to configure how verbose the
538execution of 'make' will be.  For these packages, running `./configure
539--enable-silent-rules' sets the default to minimal output, which can be
540overridden with 'make V=1'; while running `./configure
541--disable-silent-rules' sets the default to verbose, which can be
542overridden with 'make V=0'.
543
544Particular systems
545==================
546
547   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
548CC is not installed, it is recommended to use the following options in
549order to use an ANSI C compiler:
550
551     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
552
553and if that doesn't work, install pre-built binaries of GCC for HP-UX.
554
555   HP-UX 'make' updates targets which have the same time stamps as
556their prerequisites, which makes it generally unusable when shipped
557generated files such as 'configure' are involved.  Use GNU 'make'
558instead.
559
560   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
561parse its '<wchar.h>' header file.  The option '-nodtk' can be used as
562a workaround.  If GNU CC is not installed, it is therefore recommended
563to try
564
565     ./configure CC="cc"
566
567and if that doesn't work, try
568
569     ./configure CC="cc -nodtk"
570
571   On Solaris, don't put '/usr/ucb' early in your 'PATH'.  This
572directory contains several dysfunctional programs; working variants of
573these programs are available in '/usr/bin'.  So, if you need '/usr/ucb'
574in your 'PATH', put it _after_ '/usr/bin'.
575
576   On Haiku, software installed for all users goes in '/boot/common',
577not '/usr/local'.  It is recommended to use the following options:
578
579     ./configure --prefix=/boot/common
580
581Specifying the System Type
582==========================
583
584   There may be some features 'configure' cannot figure out
585automatically, but needs to determine by the type of machine the package
586will run on.  Usually, assuming the package is built to be run on the
587_same_ architectures, 'configure' can figure that out, but if it prints
588a message saying it cannot guess the machine type, give it the
589'--build=TYPE' option.  TYPE can either be a short name for the system
590type, such as 'sun4', or a canonical name which has the form:
591
592     CPU-COMPANY-SYSTEM
593
594where SYSTEM can have one of these forms:
595
596     OS
597     KERNEL-OS
598
599   See the file 'config.sub' for the possible values of each field.  If
600'config.sub' isn't included in this package, then this package doesn't
601need to know the machine type.
602
603   If you are _building_ compiler tools for cross-compiling, you should
604use the option '--target=TYPE' to select the type of system they will
605produce code for.
606
607   If you want to _use_ a cross compiler, that generates code for a
608platform different from the build platform, you should specify the
609"host" platform (i.e., that on which the generated programs will
610eventually be run) with '--host=TYPE'.
611
612Sharing Defaults
613================
614
615   If you want to set default values for 'configure' scripts to share,
616you can create a site shell script called 'config.site' that gives
617default values for variables like 'CC', 'cache_file', and 'prefix'.
618'configure' looks for 'PREFIX/share/config.site' if it exists, then
619'PREFIX/etc/config.site' if it exists.  Or, you can set the
620'CONFIG_SITE' environment variable to the location of the site script.
621A warning: not all 'configure' scripts look for a site script.
622
623Defining Variables
624==================
625
626   Variables not defined in a site shell script can be set in the
627environment passed to 'configure'.  However, some packages may run
628configure again during the build, and the customized values of these
629variables may be lost.  In order to avoid this problem, you should set
630them in the 'configure' command line, using 'VAR=value'.  For example:
631
632     ./configure CC=/usr/local2/bin/gcc
633
634causes the specified 'gcc' to be used as the C compiler (unless it is
635overridden in the site shell script).
636
637Unfortunately, this technique does not work for 'CONFIG_SHELL' due to
638an Autoconf limitation.  Until the limitation is lifted, you can use
639this workaround:
640
641     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
642
643'configure' Invocation
644======================
645
646   'configure' recognizes the following options to control how it
647operates.
648
649'--help'
650'-h'
651     Print a summary of all of the options to 'configure', and exit.
652
653'--help=short'
654'--help=recursive'
655     Print a summary of the options unique to this package's
656     'configure', and exit.  The 'short' variant lists options used
657     only in the top level, while the 'recursive' variant lists options
658     also present in any nested packages.
659
660'--version'
661'-V'
662     Print the version of Autoconf used to generate the 'configure'
663     script, and exit.
664
665'--cache-file=FILE'
666     Enable the cache: use and save the results of the tests in FILE,
667     traditionally 'config.cache'.  FILE defaults to '/dev/null' to
668     disable caching.
669
670'--config-cache'
671'-C'
672     Alias for '--cache-file=config.cache'.
673
674'--quiet'
675'--silent'
676'-q'
677     Do not print messages saying which checks are being made.  To
678     suppress all normal output, redirect it to '/dev/null' (any error
679     messages will still be shown).
680
681'--srcdir=DIR'
682     Look for the package's source code in directory DIR.  Usually
683     'configure' can determine that directory automatically.
684
685'--prefix=DIR'
686     Use DIR as the installation prefix.  *note Installation Names::
687     for more details, including other options available for fine-tuning
688     the installation locations.
689
690'--no-create'
691'-n'
692     Run the configure checks, but stop before creating any output
693     files.
694
695'configure' also accepts some other, not widely useful, options.  Run
696'configure --help' for more details.
697