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