INSTALL revision 41c30155
141c30155SmrgInstallation Instructions 241c30155Smrg************************* 341c30155Smrg 441c30155SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 541c30155Smrg2006, 2007, 2008 Free Software Foundation, Inc. 641c30155Smrg 741c30155Smrg This file is free documentation; the Free Software Foundation gives 841c30155Smrgunlimited permission to copy, distribute and modify it. 941c30155Smrg 1041c30155SmrgBasic Installation 1141c30155Smrg================== 1241c30155Smrg 1341c30155Smrg Briefly, the shell commands `./configure; make; make install' should 1441c30155Smrgconfigure, build, and install this package. The following 1541c30155Smrgmore-detailed instructions are generic; see the `README' file for 1641c30155Smrginstructions specific to this package. 1741c30155Smrg 1841c30155Smrg The `configure' shell script attempts to guess correct values for 1941c30155Smrgvarious system-dependent variables used during compilation. It uses 2041c30155Smrgthose values to create a `Makefile' in each directory of the package. 2141c30155SmrgIt may also create one or more `.h' files containing system-dependent 2241c30155Smrgdefinitions. Finally, it creates a shell script `config.status' that 2341c30155Smrgyou can run in the future to recreate the current configuration, and a 2441c30155Smrgfile `config.log' containing compiler output (useful mainly for 2541c30155Smrgdebugging `configure'). 2641c30155Smrg 2741c30155Smrg It can also use an optional file (typically called `config.cache' 2841c30155Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2941c30155Smrgthe results of its tests to speed up reconfiguring. Caching is 3041c30155Smrgdisabled by default to prevent problems with accidental use of stale 3141c30155Smrgcache files. 3241c30155Smrg 3341c30155Smrg If you need to do unusual things to compile the package, please try 3441c30155Smrgto figure out how `configure' could check whether to do them, and mail 3541c30155Smrgdiffs or instructions to the address given in the `README' so they can 3641c30155Smrgbe considered for the next release. If you are using the cache, and at 3741c30155Smrgsome point `config.cache' contains results you don't want to keep, you 3841c30155Smrgmay remove or edit it. 3941c30155Smrg 4041c30155Smrg The file `configure.ac' (or `configure.in') is used to create 4141c30155Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 4241c30155Smrgyou want to change it or regenerate `configure' using a newer version 4341c30155Smrgof `autoconf'. 4441c30155Smrg 4541c30155SmrgThe simplest way to compile this package is: 4641c30155Smrg 4741c30155Smrg 1. `cd' to the directory containing the package's source code and type 4841c30155Smrg `./configure' to configure the package for your system. 4941c30155Smrg 5041c30155Smrg Running `configure' might take a while. While running, it prints 5141c30155Smrg some messages telling which features it is checking for. 5241c30155Smrg 5341c30155Smrg 2. Type `make' to compile the package. 5441c30155Smrg 5541c30155Smrg 3. Optionally, type `make check' to run any self-tests that come with 5641c30155Smrg the package. 5741c30155Smrg 5841c30155Smrg 4. Type `make install' to install the programs and any data files and 5941c30155Smrg documentation. 6041c30155Smrg 6141c30155Smrg 5. You can remove the program binaries and object files from the 6241c30155Smrg source code directory by typing `make clean'. To also remove the 6341c30155Smrg files that `configure' created (so you can compile the package for 6441c30155Smrg a different kind of computer), type `make distclean'. There is 6541c30155Smrg also a `make maintainer-clean' target, but that is intended mainly 6641c30155Smrg for the package's developers. If you use it, you may have to get 6741c30155Smrg all sorts of other programs in order to regenerate files that came 6841c30155Smrg with the distribution. 6941c30155Smrg 7041c30155Smrg 6. Often, you can also type `make uninstall' to remove the installed 7141c30155Smrg files again. 7241c30155Smrg 7341c30155SmrgCompilers and Options 7441c30155Smrg===================== 7541c30155Smrg 7641c30155Smrg Some systems require unusual options for compilation or linking that 7741c30155Smrgthe `configure' script does not know about. Run `./configure --help' 7841c30155Smrgfor details on some of the pertinent environment variables. 7941c30155Smrg 8041c30155Smrg You can give `configure' initial values for configuration parameters 8141c30155Smrgby setting variables in the command line or in the environment. Here 8241c30155Smrgis an example: 8341c30155Smrg 8441c30155Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8541c30155Smrg 8641c30155Smrg *Note Defining Variables::, for more details. 8741c30155Smrg 8841c30155SmrgCompiling For Multiple Architectures 8941c30155Smrg==================================== 9041c30155Smrg 9141c30155Smrg You can compile the package for more than one kind of computer at the 9241c30155Smrgsame time, by placing the object files for each architecture in their 9341c30155Smrgown directory. To do this, you can use GNU `make'. `cd' to the 9441c30155Smrgdirectory where you want the object files and executables to go and run 9541c30155Smrgthe `configure' script. `configure' automatically checks for the 9641c30155Smrgsource code in the directory that `configure' is in and in `..'. 9741c30155Smrg 9841c30155Smrg With a non-GNU `make', it is safer to compile the package for one 9941c30155Smrgarchitecture at a time in the source code directory. After you have 10041c30155Smrginstalled the package for one architecture, use `make distclean' before 10141c30155Smrgreconfiguring for another architecture. 10241c30155Smrg 10341c30155Smrg On MacOS X 10.5 and later systems, you can create libraries and 10441c30155Smrgexecutables that work on multiple system types--known as "fat" or 10541c30155Smrg"universal" binaries--by specifying multiple `-arch' options to the 10641c30155Smrgcompiler but only a single `-arch' option to the preprocessor. Like 10741c30155Smrgthis: 10841c30155Smrg 10941c30155Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11041c30155Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11141c30155Smrg CPP="gcc -E" CXXCPP="g++ -E" 11241c30155Smrg 11341c30155Smrg This is not guaranteed to produce working output in all cases, you 11441c30155Smrgmay have to build one architecture at a time and combine the results 11541c30155Smrgusing the `lipo' tool if you have problems. 11641c30155Smrg 11741c30155SmrgInstallation Names 11841c30155Smrg================== 11941c30155Smrg 12041c30155Smrg By default, `make install' installs the package's commands under 12141c30155Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12241c30155Smrgcan specify an installation prefix other than `/usr/local' by giving 12341c30155Smrg`configure' the option `--prefix=PREFIX'. 12441c30155Smrg 12541c30155Smrg You can specify separate installation prefixes for 12641c30155Smrgarchitecture-specific files and architecture-independent files. If you 12741c30155Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12841c30155SmrgPREFIX as the prefix for installing programs and libraries. 12941c30155SmrgDocumentation and other data files still use the regular prefix. 13041c30155Smrg 13141c30155Smrg In addition, if you use an unusual directory layout you can give 13241c30155Smrgoptions like `--bindir=DIR' to specify different values for particular 13341c30155Smrgkinds of files. Run `configure --help' for a list of the directories 13441c30155Smrgyou can set and what kinds of files go in them. 13541c30155Smrg 13641c30155Smrg If the package supports it, you can cause programs to be installed 13741c30155Smrgwith an extra prefix or suffix on their names by giving `configure' the 13841c30155Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13941c30155Smrg 14041c30155SmrgOptional Features 14141c30155Smrg================= 14241c30155Smrg 14341c30155Smrg Some packages pay attention to `--enable-FEATURE' options to 14441c30155Smrg`configure', where FEATURE indicates an optional part of the package. 14541c30155SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14641c30155Smrgis something like `gnu-as' or `x' (for the X Window System). The 14741c30155Smrg`README' should mention any `--enable-' and `--with-' options that the 14841c30155Smrgpackage recognizes. 14941c30155Smrg 15041c30155Smrg For packages that use the X Window System, `configure' can usually 15141c30155Smrgfind the X include and library files automatically, but if it doesn't, 15241c30155Smrgyou can use the `configure' options `--x-includes=DIR' and 15341c30155Smrg`--x-libraries=DIR' to specify their locations. 15441c30155Smrg 15541c30155SmrgParticular systems 15641c30155Smrg================== 15741c30155Smrg 15841c30155Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15941c30155SmrgCC is not installed, it is recommended to use the following options in 16041c30155Smrgorder to use an ANSI C compiler: 16141c30155Smrg 16241c30155Smrg ./configure CC="cc -Ae" 16341c30155Smrg 16441c30155Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16541c30155Smrg 16641c30155Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16741c30155Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16841c30155Smrga workaround. If GNU CC is not installed, it is therefore recommended 16941c30155Smrgto try 17041c30155Smrg 17141c30155Smrg ./configure CC="cc" 17241c30155Smrg 17341c30155Smrgand if that doesn't work, try 17441c30155Smrg 17541c30155Smrg ./configure CC="cc -nodtk" 17641c30155Smrg 17741c30155SmrgSpecifying the System Type 17841c30155Smrg========================== 17941c30155Smrg 18041c30155Smrg There may be some features `configure' cannot figure out 18141c30155Smrgautomatically, but needs to determine by the type of machine the package 18241c30155Smrgwill run on. Usually, assuming the package is built to be run on the 18341c30155Smrg_same_ architectures, `configure' can figure that out, but if it prints 18441c30155Smrga message saying it cannot guess the machine type, give it the 18541c30155Smrg`--build=TYPE' option. TYPE can either be a short name for the system 18641c30155Smrgtype, such as `sun4', or a canonical name which has the form: 18741c30155Smrg 18841c30155Smrg CPU-COMPANY-SYSTEM 18941c30155Smrg 19041c30155Smrgwhere SYSTEM can have one of these forms: 19141c30155Smrg 19241c30155Smrg OS KERNEL-OS 19341c30155Smrg 19441c30155Smrg See the file `config.sub' for the possible values of each field. If 19541c30155Smrg`config.sub' isn't included in this package, then this package doesn't 19641c30155Smrgneed to know the machine type. 19741c30155Smrg 19841c30155Smrg If you are _building_ compiler tools for cross-compiling, you should 19941c30155Smrguse the option `--target=TYPE' to select the type of system they will 20041c30155Smrgproduce code for. 20141c30155Smrg 20241c30155Smrg If you want to _use_ a cross compiler, that generates code for a 20341c30155Smrgplatform different from the build platform, you should specify the 20441c30155Smrg"host" platform (i.e., that on which the generated programs will 20541c30155Smrgeventually be run) with `--host=TYPE'. 20641c30155Smrg 20741c30155SmrgSharing Defaults 20841c30155Smrg================ 20941c30155Smrg 21041c30155Smrg If you want to set default values for `configure' scripts to share, 21141c30155Smrgyou can create a site shell script called `config.site' that gives 21241c30155Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 21341c30155Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21441c30155Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21541c30155Smrg`CONFIG_SITE' environment variable to the location of the site script. 21641c30155SmrgA warning: not all `configure' scripts look for a site script. 21741c30155Smrg 21841c30155SmrgDefining Variables 21941c30155Smrg================== 22041c30155Smrg 22141c30155Smrg Variables not defined in a site shell script can be set in the 22241c30155Smrgenvironment passed to `configure'. However, some packages may run 22341c30155Smrgconfigure again during the build, and the customized values of these 22441c30155Smrgvariables may be lost. In order to avoid this problem, you should set 22541c30155Smrgthem in the `configure' command line, using `VAR=value'. For example: 22641c30155Smrg 22741c30155Smrg ./configure CC=/usr/local2/bin/gcc 22841c30155Smrg 22941c30155Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 23041c30155Smrgoverridden in the site shell script). 23141c30155Smrg 23241c30155SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23341c30155Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23441c30155Smrg 23541c30155Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23641c30155Smrg 23741c30155Smrg`configure' Invocation 23841c30155Smrg====================== 23941c30155Smrg 24041c30155Smrg `configure' recognizes the following options to control how it 24141c30155Smrgoperates. 24241c30155Smrg 24341c30155Smrg`--help' 24441c30155Smrg`-h' 24541c30155Smrg Print a summary of all of the options to `configure', and exit. 24641c30155Smrg 24741c30155Smrg`--help=short' 24841c30155Smrg`--help=recursive' 24941c30155Smrg Print a summary of the options unique to this package's 25041c30155Smrg `configure', and exit. The `short' variant lists options used 25141c30155Smrg only in the top level, while the `recursive' variant lists options 25241c30155Smrg also present in any nested packages. 25341c30155Smrg 25441c30155Smrg`--version' 25541c30155Smrg`-V' 25641c30155Smrg Print the version of Autoconf used to generate the `configure' 25741c30155Smrg script, and exit. 25841c30155Smrg 25941c30155Smrg`--cache-file=FILE' 26041c30155Smrg Enable the cache: use and save the results of the tests in FILE, 26141c30155Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26241c30155Smrg disable caching. 26341c30155Smrg 26441c30155Smrg`--config-cache' 26541c30155Smrg`-C' 26641c30155Smrg Alias for `--cache-file=config.cache'. 26741c30155Smrg 26841c30155Smrg`--quiet' 26941c30155Smrg`--silent' 27041c30155Smrg`-q' 27141c30155Smrg Do not print messages saying which checks are being made. To 27241c30155Smrg suppress all normal output, redirect it to `/dev/null' (any error 27341c30155Smrg messages will still be shown). 27441c30155Smrg 27541c30155Smrg`--srcdir=DIR' 27641c30155Smrg Look for the package's source code in directory DIR. Usually 27741c30155Smrg `configure' can determine that directory automatically. 27841c30155Smrg 27941c30155Smrg`--prefix=DIR' 28041c30155Smrg Use DIR as the installation prefix. *Note Installation Names:: 28141c30155Smrg for more details, including other options available for fine-tuning 28241c30155Smrg the installation locations. 28341c30155Smrg 28441c30155Smrg`--no-create' 28541c30155Smrg`-n' 28641c30155Smrg Run the configure checks, but stop before creating any output 28741c30155Smrg files. 28841c30155Smrg 28941c30155Smrg`configure' also accepts some other, not widely useful, options. Run 29041c30155Smrg`configure --help' for more details. 29141c30155Smrg 292