INSTALL revision 251883
1251883SpeterInstallation Instructions 2251883Speter************************* 3251883Speter 4251883SpeterCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free 5251883SpeterSoftware Foundation, Inc. 6251883Speter 7251883SpeterThis file is free documentation; the Free Software Foundation gives 8251883Speterunlimited permission to copy, distribute and modify it. 9251883Speter 10251883SpeterBasic Installation 11251883Speter================== 12251883Speter 13251883SpeterThese are generic installation instructions. 14251883Speter 15251883Speter The `configure' shell script attempts to guess correct values for 16251883Spetervarious system-dependent variables used during compilation. It uses 17251883Speterthose values to create a `Makefile' in each directory of the package. 18251883SpeterIt may also create one or more `.h' files containing system-dependent 19251883Speterdefinitions. Finally, it creates a shell script `config.status' that 20251883Speteryou can run in the future to recreate the current configuration, and a 21251883Speterfile `config.log' containing compiler output (useful mainly for 22251883Speterdebugging `configure'). 23251883Speter 24251883Speter It can also use an optional file (typically called `config.cache' 25251883Speterand enabled with `--cache-file=config.cache' or simply `-C') that saves 26251883Speterthe results of its tests to speed up reconfiguring. (Caching is 27251883Speterdisabled by default to prevent problems with accidental use of stale 28251883Spetercache files.) 29251883Speter 30251883Speter If you need to do unusual things to compile the package, please try 31251883Speterto figure out how `configure' could check whether to do them, and mail 32251883Speterdiffs or instructions to the address given in the `README' so they can 33251883Speterbe considered for the next release. If you are using the cache, and at 34251883Spetersome point `config.cache' contains results you don't want to keep, you 35251883Spetermay remove or edit it. 36251883Speter 37251883Speter The file `configure.ac' (or `configure.in') is used to create 38251883Speter`configure' by a program called `autoconf'. You only need 39251883Speter`configure.ac' if you want to change it or regenerate `configure' using 40251883Spetera newer version of `autoconf'. 41251883Speter 42251883SpeterThe simplest way to compile this package is: 43251883Speter 44251883Speter 1. `cd' to the directory containing the package's source code and type 45251883Speter `./configure' to configure the package for your system. If you're 46251883Speter using `csh' on an old version of System V, you might need to type 47251883Speter `sh ./configure' instead to prevent `csh' from trying to execute 48251883Speter `configure' itself. 49251883Speter 50251883Speter Running `configure' takes awhile. While running, it prints some 51251883Speter messages telling which features it is checking for. 52251883Speter 53251883Speter 2. Type `make' to compile the package. 54251883Speter 55251883Speter 3. Optionally, type `make check' to run any self-tests that come with 56251883Speter the package. 57251883Speter 58251883Speter 4. Type `make install' to install the programs and any data files and 59251883Speter documentation. 60251883Speter 61251883Speter 5. You can remove the program binaries and object files from the 62251883Speter source code directory by typing `make clean'. To also remove the 63251883Speter files that `configure' created (so you can compile the package for 64251883Speter a different kind of computer), type `make distclean'. There is 65251883Speter also a `make maintainer-clean' target, but that is intended mainly 66251883Speter for the package's developers. If you use it, you may have to get 67251883Speter all sorts of other programs in order to regenerate files that came 68251883Speter with the distribution. 69251883Speter 70251883SpeterCompilers and Options 71251883Speter===================== 72251883Speter 73251883SpeterSome systems require unusual options for compilation or linking that the 74251883Speter`configure' script does not know about. Run `./configure --help' for 75251883Speterdetails on some of the pertinent environment variables. 76251883Speter 77251883Speter You can give `configure' initial values for configuration parameters 78251883Speterby setting variables in the command line or in the environment. Here 79251883Speteris an example: 80251883Speter 81251883Speter ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix 82251883Speter 83251883Speter *Note Defining Variables::, for more details. 84251883Speter 85251883SpeterCompiling For Multiple Architectures 86251883Speter==================================== 87251883Speter 88251883SpeterYou can compile the package for more than one kind of computer at the 89251883Spetersame time, by placing the object files for each architecture in their 90251883Speterown directory. To do this, you must use a version of `make' that 91251883Spetersupports the `VPATH' variable, such as GNU `make'. `cd' to the 92251883Speterdirectory where you want the object files and executables to go and run 93251883Speterthe `configure' script. `configure' automatically checks for the 94251883Spetersource code in the directory that `configure' is in and in `..'. 95251883Speter 96251883Speter If you have to use a `make' that does not support the `VPATH' 97251883Spetervariable, you have to compile the package for one architecture at a 98251883Spetertime in the source code directory. After you have installed the 99251883Speterpackage for one architecture, use `make distclean' before reconfiguring 100251883Speterfor another architecture. 101251883Speter 102251883SpeterInstallation Names 103251883Speter================== 104251883Speter 105251883SpeterBy default, `make install' installs the package's commands under 106251883Speter`/usr/local/bin', include files under `/usr/local/include', etc. You 107251883Spetercan specify an installation prefix other than `/usr/local' by giving 108251883Speter`configure' the option `--prefix=PREFIX'. 109251883Speter 110251883Speter You can specify separate installation prefixes for 111251883Speterarchitecture-specific files and architecture-independent files. If you 112251883Speterpass the option `--exec-prefix=PREFIX' to `configure', the package uses 113251883SpeterPREFIX as the prefix for installing programs and libraries. 114251883SpeterDocumentation and other data files still use the regular prefix. 115251883Speter 116251883Speter In addition, if you use an unusual directory layout you can give 117251883Speteroptions like `--bindir=DIR' to specify different values for particular 118251883Speterkinds of files. Run `configure --help' for a list of the directories 119251883Speteryou can set and what kinds of files go in them. 120251883Speter 121251883Speter If the package supports it, you can cause programs to be installed 122251883Speterwith an extra prefix or suffix on their names by giving `configure' the 123251883Speteroption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 124251883Speter 125251883SpeterOptional Features 126251883Speter================= 127251883Speter 128251883SpeterSome packages pay attention to `--enable-FEATURE' options to 129251883Speter`configure', where FEATURE indicates an optional part of the package. 130251883SpeterThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 131251883Speteris something like `gnu-as' or `x' (for the X Window System). The 132251883Speter`README' should mention any `--enable-' and `--with-' options that the 133251883Speterpackage recognizes. 134251883Speter 135251883Speter For packages that use the X Window System, `configure' can usually 136251883Speterfind the X include and library files automatically, but if it doesn't, 137251883Speteryou can use the `configure' options `--x-includes=DIR' and 138251883Speter`--x-libraries=DIR' to specify their locations. 139251883Speter 140251883SpeterSpecifying the System Type 141251883Speter========================== 142251883Speter 143251883SpeterThere may be some features `configure' cannot figure out automatically, 144251883Speterbut needs to determine by the type of machine the package will run on. 145251883SpeterUsually, assuming the package is built to be run on the _same_ 146251883Speterarchitectures, `configure' can figure that out, but if it prints a 147251883Spetermessage saying it cannot guess the machine type, give it the 148251883Speter`--build=TYPE' option. TYPE can either be a short name for the system 149251883Spetertype, such as `sun4', or a canonical name which has the form: 150251883Speter 151251883Speter CPU-COMPANY-SYSTEM 152251883Speter 153251883Speterwhere SYSTEM can have one of these forms: 154251883Speter 155251883Speter OS KERNEL-OS 156251883Speter 157251883Speter See the file `config.sub' for the possible values of each field. If 158251883Speter`config.sub' isn't included in this package, then this package doesn't 159251883Speterneed to know the machine type. 160251883Speter 161251883Speter If you are _building_ compiler tools for cross-compiling, you should 162251883Speteruse the option `--target=TYPE' to select the type of system they will 163251883Speterproduce code for. 164251883Speter 165251883Speter If you want to _use_ a cross compiler, that generates code for a 166251883Speterplatform different from the build platform, you should specify the 167251883Speter"host" platform (i.e., that on which the generated programs will 168251883Spetereventually be run) with `--host=TYPE'. 169251883Speter 170251883SpeterSharing Defaults 171251883Speter================ 172251883Speter 173251883SpeterIf you want to set default values for `configure' scripts to share, you 174251883Spetercan create a site shell script called `config.site' that gives default 175251883Spetervalues for variables like `CC', `cache_file', and `prefix'. 176251883Speter`configure' looks for `PREFIX/share/config.site' if it exists, then 177251883Speter`PREFIX/etc/config.site' if it exists. Or, you can set the 178251883Speter`CONFIG_SITE' environment variable to the location of the site script. 179251883SpeterA warning: not all `configure' scripts look for a site script. 180251883Speter 181251883SpeterDefining Variables 182251883Speter================== 183251883Speter 184251883SpeterVariables not defined in a site shell script can be set in the 185251883Speterenvironment passed to `configure'. However, some packages may run 186251883Speterconfigure again during the build, and the customized values of these 187251883Spetervariables may be lost. In order to avoid this problem, you should set 188251883Speterthem in the `configure' command line, using `VAR=value'. For example: 189251883Speter 190251883Speter ./configure CC=/usr/local2/bin/gcc 191251883Speter 192251883Spetercauses the specified `gcc' to be used as the C compiler (unless it is 193251883Speteroverridden in the site shell script). Here is a another example: 194251883Speter 195251883Speter /bin/bash ./configure CONFIG_SHELL=/bin/bash 196251883Speter 197251883SpeterHere the `CONFIG_SHELL=/bin/bash' operand causes subsequent 198251883Speterconfiguration-related scripts to be executed by `/bin/bash'. 199251883Speter 200251883Speter`configure' Invocation 201251883Speter====================== 202251883Speter 203251883Speter`configure' recognizes the following options to control how it operates. 204251883Speter 205251883Speter`--help' 206251883Speter`-h' 207251883Speter Print a summary of the options to `configure', and exit. 208251883Speter 209251883Speter`--version' 210251883Speter`-V' 211251883Speter Print the version of Autoconf used to generate the `configure' 212251883Speter script, and exit. 213251883Speter 214251883Speter`--cache-file=FILE' 215251883Speter Enable the cache: use and save the results of the tests in FILE, 216251883Speter traditionally `config.cache'. FILE defaults to `/dev/null' to 217251883Speter disable caching. 218251883Speter 219251883Speter`--config-cache' 220251883Speter`-C' 221251883Speter Alias for `--cache-file=config.cache'. 222251883Speter 223251883Speter`--quiet' 224251883Speter`--silent' 225251883Speter`-q' 226251883Speter Do not print messages saying which checks are being made. To 227251883Speter suppress all normal output, redirect it to `/dev/null' (any error 228251883Speter messages will still be shown). 229251883Speter 230251883Speter`--srcdir=DIR' 231251883Speter Look for the package's source code in directory DIR. Usually 232251883Speter `configure' can determine that directory automatically. 233251883Speter 234251883Speter`configure' also accepts some other, not widely useful, options. Run 235251883Speter`configure --help' for more details. 236251883Speter 237