154359SrobertoBasic Installation 254359Sroberto================== 354359Sroberto 454359Sroberto These are generic *nix installation instructions. 554359Sroberto 6182007Sroberto For Windows/NT, please see ports/winnt and html/build/hints/winnt.html. 754359Sroberto 854359Sroberto The `configure' shell script attempts to guess correct values for 954359Srobertovarious system-dependent variables used during compilation. It uses 1054359Srobertothose values to create a `Makefile' in each directory of the package. 1154359SrobertoIt may also create one or more `.h' files containing system-dependent 1254359Srobertodefinitions. Finally, it creates a shell script `config.status' that 1354359Srobertoyou can run in the future to recreate the current configuration, a file 1454359Sroberto`config.cache' that saves the results of its tests to speed up 1554359Srobertoreconfiguring, and a file `config.log' containing compiler output 1654359Sroberto(useful mainly for debugging `configure'). 1754359Sroberto 1854359Sroberto If you need to do unusual things to compile the package, please try 1954359Srobertoto figure out how `configure' could check whether to do them, and mail 2054359Srobertodiffs or instructions to the address given in the `README' so they can 2154359Srobertobe considered for the next release. If at some point `config.cache' 2254359Srobertocontains results you don't want to keep, you may remove or edit it. 2354359Sroberto 2454359Sroberto The file `configure.in' is used to create `configure' by a program 2554359Srobertocalled `autoconf'. You only need `configure.in' if you want to change 2654359Srobertoit or regenerate `configure' using a newer version of `autoconf'. 2754359Sroberto 2854359SrobertoThe simplest way to compile this package is: 2954359Sroberto 3054359Sroberto 1. `cd' to the directory containing the package's source code and type 3154359Sroberto `./configure' to configure the package for your system. If you're 3254359Sroberto using `csh' on an old version of System V, you might need to type 3354359Sroberto `sh ./configure' instead to prevent `csh' from trying to execute 3454359Sroberto `configure' itself. 3554359Sroberto 3654359Sroberto Running `configure' takes a while. While running, it prints some 3754359Sroberto messages telling which features it is checking for. 3854359Sroberto 3954359Sroberto 2. Type `make' to compile the package. 4054359Sroberto 4154359Sroberto 3. Optionally, type `make check' to run any self-tests that come with 4254359Sroberto the package. 4354359Sroberto 4454359Sroberto 4. Type `make install' to install the programs and any data files and 4554359Sroberto documentation. 4654359Sroberto 4754359Sroberto 5. You can remove the program binaries and object files from the 4854359Sroberto source code directory by typing `make clean'. To also remove the 4954359Sroberto files that `configure' created (so you can compile the package for 5054359Sroberto a different kind of computer), type `make distclean'. There is 5154359Sroberto also a `make maintainer-clean' target, but that is intended mainly 5254359Sroberto for the package's developers. If you use it, you may have to get 5354359Sroberto all sorts of other programs in order to regenerate files that came 5454359Sroberto with the distribution. 5554359Sroberto 5654359SrobertoCompilers and Options 5754359Sroberto===================== 5854359Sroberto 5954359Sroberto Some systems require unusual options for compilation or linking that 6054359Srobertothe `configure' script does not know about. You can give `configure' 6154359Srobertoinitial values for variables by setting them in the environment. Using 6254359Srobertoa Bourne-compatible shell, you can do that on the command line like 6354359Srobertothis: 6454359Sroberto CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure 6554359Sroberto 6654359SrobertoOr on systems that have the `env' program, you can do it like this: 6754359Sroberto env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure 6854359Sroberto 6954359SrobertoCompiling For Multiple Architectures 7054359Sroberto==================================== 7154359Sroberto 7254359Sroberto You can compile the package for more than one kind of computer at the 7354359Srobertosame time, by placing the object files for each architecture in their 7454359Srobertoown directory. To do this, you must use a version of `make' that 7554359Srobertosupports the `VPATH' variable, such as GNU `make'. `cd' to the 7654359Srobertodirectory where you want the object files and executables to go and run 7754359Srobertothe `configure' script. `configure' automatically checks for the 7854359Srobertosource code in the directory that `configure' is in and in `..'. 7954359Sroberto 8054359Sroberto If you have to use a `make' that does not supports the `VPATH' 8154359Srobertovariable, you have to compile the package for one architecture at a time 8254359Srobertoin the source code directory. After you have installed the package for 8354359Srobertoone architecture, use `make distclean' before reconfiguring for another 8454359Srobertoarchitecture. 8554359Sroberto 8654359SrobertoInstallation Names 8754359Sroberto================== 8854359Sroberto 8954359Sroberto By default, `make install' will install the package's files in 9054359Sroberto`/usr/local/bin', `/usr/local/man', etc. You can specify an 9154359Srobertoinstallation prefix other than `/usr/local' by giving `configure' the 9254359Srobertooption `--prefix=PATH'. 9354359Sroberto 9454359Sroberto You can specify separate installation prefixes for 9554359Srobertoarchitecture-specific files and architecture-independent files. If you 9654359Srobertogive `configure' the option `--exec-prefix=PATH', the package will use 9754359SrobertoPATH as the prefix for installing programs and libraries. 9854359SrobertoDocumentation and other data files will still use the regular prefix. 9954359Sroberto 10054359Sroberto If the package supports it, you can cause programs to be installed 10154359Srobertowith an extra prefix or suffix on their names by giving `configure' the 10254359Srobertooption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 10354359Sroberto 10454359SrobertoOptional Features 10554359Sroberto================= 10654359Sroberto 10754359Sroberto Some packages pay attention to `--enable-FEATURE' options to 10854359Sroberto`configure', where FEATURE indicates an optional part of the package. 10954359SrobertoThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 11054359Srobertois something like `gnu-as' or `x' (for the X Window System). The 11154359Sroberto`README' should mention any `--enable-' and `--with-' options that the 11254359Srobertopackage recognizes. 11354359Sroberto 11454359Sroberto For packages that use the X Window System, `configure' can usually 11554359Srobertofind the X include and library files automatically, but if it doesn't, 11654359Srobertoyou can use the `configure' options `--x-includes=DIR' and 11754359Sroberto`--x-libraries=DIR' to specify their locations. 11854359Sroberto 11954359SrobertoSpecifying the System Type 12054359Sroberto========================== 12154359Sroberto 12254359Sroberto There may be some features `configure' can not figure out 12354359Srobertoautomatically, but needs to determine by the type of host the package 12454359Srobertowill run on. Usually `configure' can figure that out, but if it prints 12554359Srobertoa message saying it can not guess the host type, give it the 12654359Sroberto`--host=TYPE' option. TYPE can either be a short name for the system 12754359Srobertotype, such as `sun4', or a canonical name with three fields: 12854359Sroberto CPU-COMPANY-SYSTEM 12954359Sroberto 13054359SrobertoSee the file `config.sub' for the possible values of each field. If 13154359Sroberto`config.sub' isn't included in this package, then this package doesn't 13254359Srobertoneed to know the host type. 13354359Sroberto 13454359Sroberto If you are building compiler tools for cross-compiling, you can also 13554359Srobertouse the `--target=TYPE' option to select the type of system they will 13654359Srobertoproduce code for and the `--build=TYPE' option to select the type of 13754359Srobertosystem on which you are compiling the package. 13854359Sroberto 13954359SrobertoSharing Defaults 14054359Sroberto================ 14154359Sroberto 14254359Sroberto If you want to set default values for `configure' scripts to share, 14354359Srobertoyou can create a site shell script called `config.site' that gives 14454359Srobertodefault values for variables like `CC', `cache_file', and `prefix'. 14554359Sroberto`configure' looks for `PREFIX/share/config.site' if it exists, then 14654359Sroberto`PREFIX/etc/config.site' if it exists. Or, you can set the 14754359Sroberto`CONFIG_SITE' environment variable to the location of the site script. 14854359SrobertoA warning: not all `configure' scripts look for a site script. 14954359Sroberto 15054359SrobertoOperation Controls 15154359Sroberto================== 15254359Sroberto 15354359Sroberto `configure' recognizes the following options to control how it 15454359Srobertooperates. 15554359Sroberto 15654359Sroberto`--cache-file=FILE' 15754359Sroberto Use and save the results of the tests in FILE instead of 15854359Sroberto `./config.cache'. Set FILE to `/dev/null' to disable caching, for 15954359Sroberto debugging `configure'. 16054359Sroberto 16154359Sroberto`--help' 16254359Sroberto Print a summary of the options to `configure', and exit. 16354359Sroberto 16454359Sroberto`--quiet' 16554359Sroberto`--silent' 16654359Sroberto`-q' 16754359Sroberto Do not print messages saying which checks are being made. 16854359Sroberto 16954359Sroberto`--srcdir=DIR' 17054359Sroberto Look for the package's source code in directory DIR. Usually 17154359Sroberto `configure' can determine that directory automatically. 17254359Sroberto 17354359Sroberto`--version' 17454359Sroberto Print the version of Autoconf used to generate the `configure' 17554359Sroberto script, and exit. 17654359Sroberto 17754359Sroberto`configure' also accepts some other, not widely useful, options. 17854359Sroberto 179