
1: Copyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation, 2: Inc. 3: 4: This file is free documentation; the Free Software Foundation gives 5: unlimited permission to copy, distribute and modify it. 6: 7: Basic Installation 8: ================== 9: 10: These are generic installation instructions. 11: 12: The `configure' shell script attempts to guess correct values for 13: various system-dependent variables used during compilation. It uses 14: those values to create a `Makefile' in each directory of the package. 15: It may also create one or more `.h' files containing system-dependent 16: definitions. Finally, it creates a shell script `config.status' that 17: you can run in the future to recreate the current configuration, and a 18: file `config.log' containing compiler output (useful mainly for 19: debugging `configure'). 20: 21: It can also use an optional file (typically called `config.cache' 22: and enabled with `--cache-file=config.cache' or simply `-C') that saves 23: the results of its tests to speed up reconfiguring. (Caching is 24: disabled by default to prevent problems with accidental use of stale 25: cache files.) 26: 27: If you need to do unusual things to compile the package, please try 28: to figure out how `configure' could check whether to do them, and mail 29: diffs or instructions to the address given in the `README' so they can 30: be considered for the next release. If you are using the cache, and at 31: some point `config.cache' contains results you don't want to keep, you 32: may remove or edit it. 33: 34: The file `configure.ac' (or `configure.in') is used to create 35: `configure' by a program called `autoconf'. You only need 36: `configure.ac' if you want to change it or regenerate `configure' using 37: a newer version of `autoconf'. 38: 39: The simplest way to compile this package is: 40: 41: 1. `cd' to the directory containing the package's source code and type 42: `./configure' to configure the package for your system. If you're 43: using `csh' on an old version of System V, you might need to type 44: `sh ./configure' instead to prevent `csh' from trying to execute 45: `configure' itself. 46: 47: Running `configure' takes awhile. While running, it prints some 48: messages telling which features it is checking for. 49: 50: 2. Type `make' to compile the package. 51: 52: 3. Optionally, type `make check' to run any self-tests that come with 53: the package. 54: 55: 4. Type `make install' to install the programs and any data files and 56: documentation. 57: 58: 5. You can remove the program binaries and object files from the 59: source code directory by typing `make clean'. To also remove the 60: files that `configure' created (so you can compile the package for 61: a different kind of computer), type `make distclean'. There is 62: also a `make maintainer-clean' target, but that is intended mainly 63: for the package's developers. If you use it, you may have to get 64: all sorts of other programs in order to regenerate files that came 65: with the distribution. 66: 67: Compilers and Options 68: ===================== 69: 70: Some systems require unusual options for compilation or linking that 71: the `configure' script does not know about. Run `./configure --help' 72: for details on some of the pertinent environment variables. 73: 74: You can give `configure' initial values for variables by setting 75: them in the environment. You can do that on the command line like this: 76: 77: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix 78: 79: *Note Defining Variables::, for more details. 80: 81: Compiling For Multiple Architectures 82: ==================================== 83: 84: You can compile the package for more than one kind of computer at the 85: same time, by placing the object files for each architecture in their 86: own directory. To do this, you must use a version of `make' that 87: supports the `VPATH' variable, such as GNU `make'. `cd' to the 88: directory where you want the object files and executables to go and run 89: the `configure' script. `configure' automatically checks for the 90: source code in the directory that `configure' is in and in `..'. 91: 92: If you have to use a `make' that does not support the `VPATH' 93: variable, you have to compile the package for one architecture at a 94: time in the source code directory. After you have installed the 95: package for one architecture, use `make distclean' before reconfiguring 96: for another architecture. 97: 98: Installation Names 99: ================== 100: 101: By default, `make install' will install the package's files in 102: `/usr/local/bin', `/usr/local/man', etc. You can specify an 103: installation prefix other than `/usr/local' by giving `configure' the 104: option `--prefix=PATH'. 105: 106: You can specify separate installation prefixes for 107: architecture-specific files and architecture-independent files. If you 108: give `configure' the option `--exec-prefix=PATH', the package will use 109: PATH as the prefix for installing programs and libraries. 110: Documentation and other data files will still use the regular prefix. 111: 112: In addition, if you use an unusual directory layout you can give 113: options like `--bindir=PATH' to specify different values for particular 114: kinds of files. Run `configure --help' for a list of the directories 115: you can set and what kinds of files go in them. 116: 117: If the package supports it, you can cause programs to be installed 118: with an extra prefix or suffix on their names by giving `configure' the 119: option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 120: 121: Optional Features 122: ================= 123: 124: Some packages pay attention to `--enable-FEATURE' options to 125: `configure', where FEATURE indicates an optional part of the package. 126: They may also pay attention to `--with-PACKAGE' options, where PACKAGE 127: is something like `gnu-as' or `x' (for the X Window System). The 128: `README' should mention any `--enable-' and `--with-' options that the 129: package recognizes. 130: 131: For packages that use the X Window System, `configure' can usually 132: find the X include and library files automatically, but if it doesn't, 133: you can use the `configure' options `--x-includes=DIR' and 134: `--x-libraries=DIR' to specify their locations. 135: 136: Specifying the System Type 137: ========================== 138: 139: There may be some features `configure' cannot figure out 140: automatically, but needs to determine by the type of host the package 141: will run on. Usually `configure' can figure that out, but if it prints 142: a message saying it cannot guess the host type, give it the 143: `--build=TYPE' option. TYPE can either be a short name for the system 144: type, such as `sun4', or a canonical name which has the form: 145: 146: CPU-COMPANY-SYSTEM 147: 148: where SYSTEM can have one of these forms: 149: 150: OS KERNEL-OS 151: 152: See the file `config.sub' for the possible values of each field. If 153: `config.sub' isn't included in this package, then this package doesn't 154: need to know the host type. 155: 156: If you are _building_ compiler tools for cross-compiling, you should 157: use the `--target=TYPE' option to select the type of system they will 158: produce code for. 159: 160: If you want to _use_ a cross compiler, that generates code for a 161: platform different from the build platform, you should specify the host 162: platform (i.e., that on which the generated programs will eventually be 163: run) with `--host=TYPE'. In this case, you should also specify the 164: build platform with `--build=TYPE', because, in this case, it may not 165: be possible to guess the build platform (it sometimes involves 166: compiling and running simple test programs, and this can't be done if 167: the compiler is a cross compiler). 168: 169: Sharing Defaults 170: ================ 171: 172: If you want to set default values for `configure' scripts to share, 173: you can create a site shell script called `config.site' that gives 174: default values for variables like `CC', `cache_file', and `prefix'. 175: `configure' looks for `PREFIX/share/config.site' if it exists, then 176: `PREFIX/etc/config.site' if it exists. Or, you can set the 177: `CONFIG_SITE' environment variable to the location of the site script. 178: A warning: not all `configure' scripts look for a site script. 179: 180: Defining Variables 181: ================== 182: 183: Variables not defined in a site shell script can be set in the 184: environment passed to `configure'. However, some packages may run 185: configure again during the build, and the customized values of these 186: variables may be lost. In order to avoid this problem, you should set 187: them in the `configure' command line, using `VAR=value'. For example: 188: 189: ./configure CC=/usr/local2/bin/gcc 190: 191: will cause the specified gcc to be used as the C compiler (unless it is 192: overridden in the site shell script). 193: 194: `configure' Invocation 195: ====================== 196: 197: `configure' recognizes the following options to control how it 198: operates. 199: 200: `--help' 201: `-h' 202: Print a summary of the options to `configure', and exit. 203: 204: `--version' 205: `-V' 206: Print the version of Autoconf used to generate the `configure' 207: script, and exit. 208: 209: `--cache-file=FILE' 210: Enable the cache: use and save the results of the tests in FILE, 211: traditionally `config.cache'. FILE defaults to `/dev/null' to 212: disable caching. 213: 214: `--config-cache' 215: `-C' 216: Alias for `--cache-file=config.cache'. 217: 218: `--quiet' 219: `--silent' 220: `-q' 221: Do not print messages saying which checks are being made. To 222: suppress all normal output, redirect it to `/dev/null' (any error 223: messages will still be shown). 224: 225: `--srcdir=DIR' 226: Look for the package's source code in directory DIR. Usually 227: `configure' can determine that directory automatically. 228: 229: `configure' also accepts some other, not widely useful, options. Run 230: `configure --help' for more details. 231: