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