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