INSTALL revision 9ef7378b
19ef7378bSmrgInstallation Instructions 29ef7378bSmrg************************* 39ef7378bSmrg 49ef7378bSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 59ef7378bSmrg2006, 2007, 2008 Free Software Foundation, Inc. 69ef7378bSmrg 79ef7378bSmrg This file is free documentation; the Free Software Foundation gives 89ef7378bSmrgunlimited permission to copy, distribute and modify it. 99ef7378bSmrg 109ef7378bSmrgBasic Installation 119ef7378bSmrg================== 129ef7378bSmrg 139ef7378bSmrg Briefly, the shell commands `./configure; make; make install' should 149ef7378bSmrgconfigure, build, and install this package. The following 159ef7378bSmrgmore-detailed instructions are generic; see the `README' file for 169ef7378bSmrginstructions specific to this package. 179ef7378bSmrg 189ef7378bSmrg The `configure' shell script attempts to guess correct values for 199ef7378bSmrgvarious system-dependent variables used during compilation. It uses 209ef7378bSmrgthose values to create a `Makefile' in each directory of the package. 219ef7378bSmrgIt may also create one or more `.h' files containing system-dependent 229ef7378bSmrgdefinitions. Finally, it creates a shell script `config.status' that 239ef7378bSmrgyou can run in the future to recreate the current configuration, and a 249ef7378bSmrgfile `config.log' containing compiler output (useful mainly for 259ef7378bSmrgdebugging `configure'). 269ef7378bSmrg 279ef7378bSmrg It can also use an optional file (typically called `config.cache' 289ef7378bSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 299ef7378bSmrgthe results of its tests to speed up reconfiguring. Caching is 309ef7378bSmrgdisabled by default to prevent problems with accidental use of stale 319ef7378bSmrgcache files. 329ef7378bSmrg 339ef7378bSmrg If you need to do unusual things to compile the package, please try 349ef7378bSmrgto figure out how `configure' could check whether to do them, and mail 359ef7378bSmrgdiffs or instructions to the address given in the `README' so they can 369ef7378bSmrgbe considered for the next release. If you are using the cache, and at 379ef7378bSmrgsome point `config.cache' contains results you don't want to keep, you 389ef7378bSmrgmay remove or edit it. 399ef7378bSmrg 409ef7378bSmrg The file `configure.ac' (or `configure.in') is used to create 419ef7378bSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 429ef7378bSmrgyou want to change it or regenerate `configure' using a newer version 439ef7378bSmrgof `autoconf'. 449ef7378bSmrg 459ef7378bSmrgThe simplest way to compile this package is: 469ef7378bSmrg 479ef7378bSmrg 1. `cd' to the directory containing the package's source code and type 489ef7378bSmrg `./configure' to configure the package for your system. 499ef7378bSmrg 509ef7378bSmrg Running `configure' might take a while. While running, it prints 519ef7378bSmrg some messages telling which features it is checking for. 529ef7378bSmrg 539ef7378bSmrg 2. Type `make' to compile the package. 549ef7378bSmrg 559ef7378bSmrg 3. Optionally, type `make check' to run any self-tests that come with 569ef7378bSmrg the package. 579ef7378bSmrg 589ef7378bSmrg 4. Type `make install' to install the programs and any data files and 599ef7378bSmrg documentation. 609ef7378bSmrg 619ef7378bSmrg 5. You can remove the program binaries and object files from the 629ef7378bSmrg source code directory by typing `make clean'. To also remove the 639ef7378bSmrg files that `configure' created (so you can compile the package for 649ef7378bSmrg a different kind of computer), type `make distclean'. There is 659ef7378bSmrg also a `make maintainer-clean' target, but that is intended mainly 669ef7378bSmrg for the package's developers. If you use it, you may have to get 679ef7378bSmrg all sorts of other programs in order to regenerate files that came 689ef7378bSmrg with the distribution. 699ef7378bSmrg 709ef7378bSmrg 6. Often, you can also type `make uninstall' to remove the installed 719ef7378bSmrg files again. 729ef7378bSmrg 739ef7378bSmrgCompilers and Options 749ef7378bSmrg===================== 759ef7378bSmrg 769ef7378bSmrg Some systems require unusual options for compilation or linking that 779ef7378bSmrgthe `configure' script does not know about. Run `./configure --help' 789ef7378bSmrgfor details on some of the pertinent environment variables. 799ef7378bSmrg 809ef7378bSmrg You can give `configure' initial values for configuration parameters 819ef7378bSmrgby setting variables in the command line or in the environment. Here 829ef7378bSmrgis an example: 839ef7378bSmrg 849ef7378bSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 859ef7378bSmrg 869ef7378bSmrg *Note Defining Variables::, for more details. 879ef7378bSmrg 889ef7378bSmrgCompiling For Multiple Architectures 899ef7378bSmrg==================================== 909ef7378bSmrg 919ef7378bSmrg You can compile the package for more than one kind of computer at the 929ef7378bSmrgsame time, by placing the object files for each architecture in their 939ef7378bSmrgown directory. To do this, you can use GNU `make'. `cd' to the 949ef7378bSmrgdirectory where you want the object files and executables to go and run 959ef7378bSmrgthe `configure' script. `configure' automatically checks for the 969ef7378bSmrgsource code in the directory that `configure' is in and in `..'. 979ef7378bSmrg 989ef7378bSmrg With a non-GNU `make', it is safer to compile the package for one 999ef7378bSmrgarchitecture at a time in the source code directory. After you have 1009ef7378bSmrginstalled the package for one architecture, use `make distclean' before 1019ef7378bSmrgreconfiguring for another architecture. 1029ef7378bSmrg 1039ef7378bSmrg On MacOS X 10.5 and later systems, you can create libraries and 1049ef7378bSmrgexecutables that work on multiple system types--known as "fat" or 1059ef7378bSmrg"universal" binaries--by specifying multiple `-arch' options to the 1069ef7378bSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1079ef7378bSmrgthis: 1089ef7378bSmrg 1099ef7378bSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1109ef7378bSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1119ef7378bSmrg CPP="gcc -E" CXXCPP="g++ -E" 1129ef7378bSmrg 1139ef7378bSmrg This is not guaranteed to produce working output in all cases, you 1149ef7378bSmrgmay have to build one architecture at a time and combine the results 1159ef7378bSmrgusing the `lipo' tool if you have problems. 1169ef7378bSmrg 1179ef7378bSmrgInstallation Names 1189ef7378bSmrg================== 1199ef7378bSmrg 1209ef7378bSmrg By default, `make install' installs the package's commands under 1219ef7378bSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1229ef7378bSmrgcan specify an installation prefix other than `/usr/local' by giving 1239ef7378bSmrg`configure' the option `--prefix=PREFIX'. 1249ef7378bSmrg 1259ef7378bSmrg You can specify separate installation prefixes for 1269ef7378bSmrgarchitecture-specific files and architecture-independent files. If you 1279ef7378bSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1289ef7378bSmrgPREFIX as the prefix for installing programs and libraries. 1299ef7378bSmrgDocumentation and other data files still use the regular prefix. 1309ef7378bSmrg 1319ef7378bSmrg In addition, if you use an unusual directory layout you can give 1329ef7378bSmrgoptions like `--bindir=DIR' to specify different values for particular 1339ef7378bSmrgkinds of files. Run `configure --help' for a list of the directories 1349ef7378bSmrgyou can set and what kinds of files go in them. 1359ef7378bSmrg 1369ef7378bSmrg If the package supports it, you can cause programs to be installed 1379ef7378bSmrgwith an extra prefix or suffix on their names by giving `configure' the 1389ef7378bSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1399ef7378bSmrg 1409ef7378bSmrgOptional Features 1419ef7378bSmrg================= 1429ef7378bSmrg 1439ef7378bSmrg Some packages pay attention to `--enable-FEATURE' options to 1449ef7378bSmrg`configure', where FEATURE indicates an optional part of the package. 1459ef7378bSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1469ef7378bSmrgis something like `gnu-as' or `x' (for the X Window System). The 1479ef7378bSmrg`README' should mention any `--enable-' and `--with-' options that the 1489ef7378bSmrgpackage recognizes. 1499ef7378bSmrg 1509ef7378bSmrg For packages that use the X Window System, `configure' can usually 1519ef7378bSmrgfind the X include and library files automatically, but if it doesn't, 1529ef7378bSmrgyou can use the `configure' options `--x-includes=DIR' and 1539ef7378bSmrg`--x-libraries=DIR' to specify their locations. 1549ef7378bSmrg 1559ef7378bSmrgParticular systems 1569ef7378bSmrg================== 1579ef7378bSmrg 1589ef7378bSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1599ef7378bSmrgCC is not installed, it is recommended to use the following options in 1609ef7378bSmrgorder to use an ANSI C compiler: 1619ef7378bSmrg 1629ef7378bSmrg ./configure CC="cc -Ae" 1639ef7378bSmrg 1649ef7378bSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1659ef7378bSmrg 1669ef7378bSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1679ef7378bSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1689ef7378bSmrga workaround. If GNU CC is not installed, it is therefore recommended 1699ef7378bSmrgto try 1709ef7378bSmrg 1719ef7378bSmrg ./configure CC="cc" 1729ef7378bSmrg 1739ef7378bSmrgand if that doesn't work, try 1749ef7378bSmrg 1759ef7378bSmrg ./configure CC="cc -nodtk" 1769ef7378bSmrg 1779ef7378bSmrgSpecifying the System Type 1789ef7378bSmrg========================== 1799ef7378bSmrg 1809ef7378bSmrg There may be some features `configure' cannot figure out 1819ef7378bSmrgautomatically, but needs to determine by the type of machine the package 1829ef7378bSmrgwill run on. Usually, assuming the package is built to be run on the 1839ef7378bSmrg_same_ architectures, `configure' can figure that out, but if it prints 1849ef7378bSmrga message saying it cannot guess the machine type, give it the 1859ef7378bSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1869ef7378bSmrgtype, such as `sun4', or a canonical name which has the form: 1879ef7378bSmrg 1889ef7378bSmrg CPU-COMPANY-SYSTEM 1899ef7378bSmrg 1909ef7378bSmrgwhere SYSTEM can have one of these forms: 1919ef7378bSmrg 1929ef7378bSmrg OS KERNEL-OS 1939ef7378bSmrg 1949ef7378bSmrg See the file `config.sub' for the possible values of each field. If 1959ef7378bSmrg`config.sub' isn't included in this package, then this package doesn't 1969ef7378bSmrgneed to know the machine type. 1979ef7378bSmrg 1989ef7378bSmrg If you are _building_ compiler tools for cross-compiling, you should 1999ef7378bSmrguse the option `--target=TYPE' to select the type of system they will 2009ef7378bSmrgproduce code for. 2019ef7378bSmrg 2029ef7378bSmrg If you want to _use_ a cross compiler, that generates code for a 2039ef7378bSmrgplatform different from the build platform, you should specify the 2049ef7378bSmrg"host" platform (i.e., that on which the generated programs will 2059ef7378bSmrgeventually be run) with `--host=TYPE'. 2069ef7378bSmrg 2079ef7378bSmrgSharing Defaults 2089ef7378bSmrg================ 2099ef7378bSmrg 2109ef7378bSmrg If you want to set default values for `configure' scripts to share, 2119ef7378bSmrgyou can create a site shell script called `config.site' that gives 2129ef7378bSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2139ef7378bSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2149ef7378bSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2159ef7378bSmrg`CONFIG_SITE' environment variable to the location of the site script. 2169ef7378bSmrgA warning: not all `configure' scripts look for a site script. 2179ef7378bSmrg 2189ef7378bSmrgDefining Variables 2199ef7378bSmrg================== 2209ef7378bSmrg 2219ef7378bSmrg Variables not defined in a site shell script can be set in the 2229ef7378bSmrgenvironment passed to `configure'. However, some packages may run 2239ef7378bSmrgconfigure again during the build, and the customized values of these 2249ef7378bSmrgvariables may be lost. In order to avoid this problem, you should set 2259ef7378bSmrgthem in the `configure' command line, using `VAR=value'. For example: 2269ef7378bSmrg 2279ef7378bSmrg ./configure CC=/usr/local2/bin/gcc 2289ef7378bSmrg 2299ef7378bSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2309ef7378bSmrgoverridden in the site shell script). 2319ef7378bSmrg 2329ef7378bSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2339ef7378bSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2349ef7378bSmrg 2359ef7378bSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2369ef7378bSmrg 2379ef7378bSmrg`configure' Invocation 2389ef7378bSmrg====================== 2399ef7378bSmrg 2409ef7378bSmrg `configure' recognizes the following options to control how it 2419ef7378bSmrgoperates. 2429ef7378bSmrg 2439ef7378bSmrg`--help' 2449ef7378bSmrg`-h' 2459ef7378bSmrg Print a summary of all of the options to `configure', and exit. 2469ef7378bSmrg 2479ef7378bSmrg`--help=short' 2489ef7378bSmrg`--help=recursive' 2499ef7378bSmrg Print a summary of the options unique to this package's 2509ef7378bSmrg `configure', and exit. The `short' variant lists options used 2519ef7378bSmrg only in the top level, while the `recursive' variant lists options 2529ef7378bSmrg also present in any nested packages. 2539ef7378bSmrg 2549ef7378bSmrg`--version' 2559ef7378bSmrg`-V' 2569ef7378bSmrg Print the version of Autoconf used to generate the `configure' 2579ef7378bSmrg script, and exit. 2589ef7378bSmrg 2599ef7378bSmrg`--cache-file=FILE' 2609ef7378bSmrg Enable the cache: use and save the results of the tests in FILE, 2619ef7378bSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2629ef7378bSmrg disable caching. 2639ef7378bSmrg 2649ef7378bSmrg`--config-cache' 2659ef7378bSmrg`-C' 2669ef7378bSmrg Alias for `--cache-file=config.cache'. 2679ef7378bSmrg 2689ef7378bSmrg`--quiet' 2699ef7378bSmrg`--silent' 2709ef7378bSmrg`-q' 2719ef7378bSmrg Do not print messages saying which checks are being made. To 2729ef7378bSmrg suppress all normal output, redirect it to `/dev/null' (any error 2739ef7378bSmrg messages will still be shown). 2749ef7378bSmrg 2759ef7378bSmrg`--srcdir=DIR' 2769ef7378bSmrg Look for the package's source code in directory DIR. Usually 2779ef7378bSmrg `configure' can determine that directory automatically. 2789ef7378bSmrg 2799ef7378bSmrg`--prefix=DIR' 2809ef7378bSmrg Use DIR as the installation prefix. *Note Installation Names:: 2819ef7378bSmrg for more details, including other options available for fine-tuning 2829ef7378bSmrg the installation locations. 2839ef7378bSmrg 2849ef7378bSmrg`--no-create' 2859ef7378bSmrg`-n' 2869ef7378bSmrg Run the configure checks, but stop before creating any output 2879ef7378bSmrg files. 2889ef7378bSmrg 2899ef7378bSmrg`configure' also accepts some other, not widely useful, options. Run 2909ef7378bSmrg`configure --help' for more details. 2919ef7378bSmrg 292