1251881SpeterBasic Installation 2251881Speter================== 3251881Speter 4251881Speter The `configure' shell script attempts to guess correct values for 5251881Spetervarious system-dependent variables used during compilation. It uses 6251881Speterthose values to create a `Makefile' in each directory of the package. 7251881SpeterIt may also create one or more `.h' files containing system-dependent 8251881Speterdefinitions. Finally, it creates a shell script `config.status' that 9251881Speteryou can run in the future to recreate the current configuration, a file 10251881Speter`config.cache' that saves the results of its tests to speed up 11251881Speterreconfiguring, and a file `config.log' containing compiler output 12251881Speter(useful mainly for debugging `configure'). 13251881Speter 14251881Speter If you need to do unusual things to compile the package, please try 15251881Speterto figure out how `configure' could check whether to do them, and mail 16251881Speterdiffs or instructions to the address given in the `README' so they can 17251881Speterbe considered for the next release. If at some point `config.cache' 18251881Spetercontains results you don't want to keep, you may remove or edit it. 19251881Speter 20251881Speter The file `configure.in' is used to create `configure' by a program 21251881Spetercalled `autoconf'. You only need `configure.in' if you want to change 22251881Speterit or regenerate `configure' using a newer version of `autoconf'. 23251881Speter 24251881SpeterThe simplest way to compile this package is: 25251881Speter 26251881Speter 1. `cd' to the directory containing the package's source code and type 27251881Speter `./configure' to configure the package for your system. If you're 28251881Speter using `csh' on an old version of System V, you might need to type 29251881Speter `sh ./configure' instead to prevent `csh' from trying to execute 30251881Speter `configure' itself. 31251881Speter 32251881Speter Running `configure' takes awhile. While running, it prints some 33251881Speter messages telling which features it is checking for. 34251881Speter 35251881Speter 2. Type `make' to compile the package. 36251881Speter 37251881Speter If you're building GNU make on a system which does not already have 38251881Speter a `make', you can use the build.sh shell script to compile. Run 39251881Speter `sh ./build.sh'. This should compile the program in the current 40251881Speter directory. Then you will have a Make program that you can use for 41251881Speter `make install', or whatever else. 42251881Speter 43251881Speter 3. Optionally, type `./make check' to run any self-tests that come with 44251881Speter the package. 45251881Speter 46251881Speter 4. Type `make install' to install the programs and any data files and 47251881Speter documentation. 48251881Speter 49251881Speter 5. You can remove the program binaries and object files from the 50251881Speter source code directory by typing `make clean'. To also remove the 51251881Speter files that `configure' created (so you can compile the package for 52251881Speter a different kind of computer), type `make distclean'. There is 53251881Speter also a `make maintainer-clean' target, but that is intended mainly 54251881Speter for the package's developers. If you use it, you may have to get 55251881Speter all sorts of other programs in order to regenerate files that came 56251881Speter with the distribution. 57251881Speter 58251881SpeterCompilers and Options 59251881Speter===================== 60251881Speter 61251881Speter Some systems require unusual options for compilation or linking that 62251881Speterthe `configure' script does not know about. You can give `configure' 63251881Speterinitial values for variables by setting them in the environment. Using 64251881Spetera Bourne-compatible shell, you can do that on the command line like 65251881Speterthis: 66251881Speter CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure 67251881Speter 68251881SpeterOr on systems that have the `env' program, you can do it like this: 69251881Speter env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure 70251881Speter 71251881SpeterCompiling For Multiple Architectures 72251881Speter==================================== 73251881Speter 74251881Speter You can compile the package for more than one kind of computer at the 75251881Spetersame time, by placing the object files for each architecture in their 76251881Speterown directory. To do this, you must use a version of `make' that 77251881Spetersupports the `VPATH' variable, such as GNU `make'. `cd' to the 78251881Speterdirectory where you want the object files and executables to go and run 79251881Speterthe `configure' script. `configure' automatically checks for the 80251881Spetersource code in the directory that `configure' is in and in `..'. 81251881Speter 82251881Speter If you have to use a `make' that does not supports the `VPATH' 83251881Spetervariable, you have to compile the package for one architecture at a time 84251881Speterin the source code directory. After you have installed the package for 85251881Speterone architecture, use `make distclean' before reconfiguring for another 86251881Speterarchitecture. 87251881Speter 88251881SpeterInstallation Names 89251881Speter================== 90251881Speter 91251881Speter By default, `make install' will install the package's files in 92251881Speter`/usr/local/bin', `/usr/local/man', etc. You can specify an 93251881Speterinstallation prefix other than `/usr/local' by giving `configure' the 94251881Speteroption `--prefix=PATH'. 95251881Speter 96251881Speter You can specify separate installation prefixes for 97251881Speterarchitecture-specific files and architecture-independent files. If you 98251881Spetergive `configure' the option `--exec-prefix=PATH', the package will use 99251881SpeterPATH as the prefix for installing programs and libraries. 100251881SpeterDocumentation and other data files will still use the regular prefix. 101251881Speter 102251881Speter In addition, if you use an unusual directory layout you can give 103251881Speteroptions like `--bindir=PATH' to specify different values for particular 104251881Speterkinds of files. Run `configure --help' for a list of the directories 105251881Speteryou can set and what kinds of files go in them. 106251881Speter 107251881Speter If the package supports it, you can cause programs to be installed 108251881Speterwith an extra prefix or suffix on their names by giving `configure' the 109251881Speteroption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 110251881Speter 111251881SpeterOptional Features 112251881Speter================= 113251881Speter 114251881Speter Some packages pay attention to `--enable-FEATURE' options to 115251881Speter`configure', where FEATURE indicates an optional part of the package. 116251881SpeterThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 117251881Speteris something like `gnu-as' or `x' (for the X Window System). The 118251881Speter`README' should mention any `--enable-' and `--with-' options that the 119251881Speterpackage recognizes. 120251881Speter 121251881Speter For packages that use the X Window System, `configure' can usually 122251881Speterfind the X include and library files automatically, but if it doesn't, 123251881Speteryou can use the `configure' options `--x-includes=DIR' and 124251881Speter`--x-libraries=DIR' to specify their locations. 125251881Speter 126251881SpeterSpecifying the System Type 127251881Speter========================== 128251881Speter 129251881Speter There may be some features `configure' can not figure out 130251881Speterautomatically, but needs to determine by the type of host the package 131251881Speterwill run on. Usually `configure' can figure that out, but if it prints 132251881Spetera message saying it can not guess the host type, give it the 133251881Speter`--host=TYPE' option. TYPE can either be a short name for the system 134251881Spetertype, such as `sun4', or a canonical name with three fields: 135251881Speter CPU-COMPANY-SYSTEM 136251881Speter 137251881SpeterSee the file `config.sub' for the possible values of each field. If 138251881Speter`config.sub' isn't included in this package, then this package doesn't 139251881Speterneed to know the host type. 140251881Speter 141251881Speter If you are building compiler tools for cross-compiling, you can also 142251881Speteruse the `--target=TYPE' option to select the type of system they will 143251881Speterproduce code for and the `--build=TYPE' option to select the type of 144251881Spetersystem on which you are compiling the package. 145251881Speter 146251881SpeterSharing Defaults 147251881Speter================ 148251881Speter 149251881Speter If you want to set default values for `configure' scripts to share, 150251881Speteryou can create a site shell script called `config.site' that gives 151251881Speterdefault values for variables like `CC', `cache_file', and `prefix'. 152251881Speter`configure' looks for `PREFIX/share/config.site' if it exists, then 153251881Speter`PREFIX/etc/config.site' if it exists. Or, you can set the 154251881Speter`CONFIG_SITE' environment variable to the location of the site script. 155251881SpeterA warning: not all `configure' scripts look for a site script. 156251881Speter 157251881SpeterOperation Controls 158251881Speter================== 159251881Speter 160251881Speter `configure' recognizes the following options to control how it 161251881Speteroperates. 162251881Speter 163251881Speter`--cache-file=FILE' 164251881Speter Use and save the results of the tests in FILE instead of 165251881Speter `./config.cache'. Set FILE to `/dev/null' to disable caching, for 166251881Speter debugging `configure'. 167251881Speter 168251881Speter`--help' 169251881Speter Print a summary of the options to `configure', and exit. 170251881Speter 171251881Speter`--quiet' 172251881Speter`--silent' 173251881Speter`-q' 174251881Speter Do not print messages saying which checks are being made. To 175251881Speter suppress all normal output, redirect it to `/dev/null' (any error 176251881Speter messages will still be shown). 177251881Speter 178251881Speter`--srcdir=DIR' 179251881Speter Look for the package's source code in directory DIR. Usually 180251881Speter `configure' can determine that directory automatically. 181251881Speter 182251881Speter`--version' 183251881Speter Print the version of Autoconf used to generate the `configure' 184251881Speter script, and exit. 185251881Speter 186251881Speter`configure' also accepts some other, not widely useful, options. 187251881Speter 188251881Speter