INSTALL revision 3a67387e
13a67387eSmrgInstallation Instructions 23a67387eSmrg************************* 33a67387eSmrg 43a67387eSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 53a67387eSmrg2006, 2007, 2008 Free Software Foundation, Inc. 63a67387eSmrg 73a67387eSmrg This file is free documentation; the Free Software Foundation gives 83a67387eSmrgunlimited permission to copy, distribute and modify it. 93a67387eSmrg 103a67387eSmrgBasic Installation 113a67387eSmrg================== 123a67387eSmrg 133a67387eSmrg Briefly, the shell commands `./configure; make; make install' should 143a67387eSmrgconfigure, build, and install this package. The following 153a67387eSmrgmore-detailed instructions are generic; see the `README' file for 163a67387eSmrginstructions specific to this package. 173a67387eSmrg 183a67387eSmrg The `configure' shell script attempts to guess correct values for 193a67387eSmrgvarious system-dependent variables used during compilation. It uses 203a67387eSmrgthose values to create a `Makefile' in each directory of the package. 213a67387eSmrgIt may also create one or more `.h' files containing system-dependent 223a67387eSmrgdefinitions. Finally, it creates a shell script `config.status' that 233a67387eSmrgyou can run in the future to recreate the current configuration, and a 243a67387eSmrgfile `config.log' containing compiler output (useful mainly for 253a67387eSmrgdebugging `configure'). 263a67387eSmrg 273a67387eSmrg It can also use an optional file (typically called `config.cache' 283a67387eSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 293a67387eSmrgthe results of its tests to speed up reconfiguring. Caching is 303a67387eSmrgdisabled by default to prevent problems with accidental use of stale 313a67387eSmrgcache files. 323a67387eSmrg 333a67387eSmrg If you need to do unusual things to compile the package, please try 343a67387eSmrgto figure out how `configure' could check whether to do them, and mail 353a67387eSmrgdiffs or instructions to the address given in the `README' so they can 363a67387eSmrgbe considered for the next release. If you are using the cache, and at 373a67387eSmrgsome point `config.cache' contains results you don't want to keep, you 383a67387eSmrgmay remove or edit it. 393a67387eSmrg 403a67387eSmrg The file `configure.ac' (or `configure.in') is used to create 413a67387eSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 423a67387eSmrgyou want to change it or regenerate `configure' using a newer version 433a67387eSmrgof `autoconf'. 443a67387eSmrg 453a67387eSmrgThe simplest way to compile this package is: 463a67387eSmrg 473a67387eSmrg 1. `cd' to the directory containing the package's source code and type 483a67387eSmrg `./configure' to configure the package for your system. 493a67387eSmrg 503a67387eSmrg Running `configure' might take a while. While running, it prints 513a67387eSmrg some messages telling which features it is checking for. 523a67387eSmrg 533a67387eSmrg 2. Type `make' to compile the package. 543a67387eSmrg 553a67387eSmrg 3. Optionally, type `make check' to run any self-tests that come with 563a67387eSmrg the package. 573a67387eSmrg 583a67387eSmrg 4. Type `make install' to install the programs and any data files and 593a67387eSmrg documentation. 603a67387eSmrg 613a67387eSmrg 5. You can remove the program binaries and object files from the 623a67387eSmrg source code directory by typing `make clean'. To also remove the 633a67387eSmrg files that `configure' created (so you can compile the package for 643a67387eSmrg a different kind of computer), type `make distclean'. There is 653a67387eSmrg also a `make maintainer-clean' target, but that is intended mainly 663a67387eSmrg for the package's developers. If you use it, you may have to get 673a67387eSmrg all sorts of other programs in order to regenerate files that came 683a67387eSmrg with the distribution. 693a67387eSmrg 703a67387eSmrg 6. Often, you can also type `make uninstall' to remove the installed 713a67387eSmrg files again. 723a67387eSmrg 733a67387eSmrgCompilers and Options 743a67387eSmrg===================== 753a67387eSmrg 763a67387eSmrg Some systems require unusual options for compilation or linking that 773a67387eSmrgthe `configure' script does not know about. Run `./configure --help' 783a67387eSmrgfor details on some of the pertinent environment variables. 793a67387eSmrg 803a67387eSmrg You can give `configure' initial values for configuration parameters 813a67387eSmrgby setting variables in the command line or in the environment. Here 823a67387eSmrgis an example: 833a67387eSmrg 843a67387eSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 853a67387eSmrg 863a67387eSmrg *Note Defining Variables::, for more details. 873a67387eSmrg 883a67387eSmrgCompiling For Multiple Architectures 893a67387eSmrg==================================== 903a67387eSmrg 913a67387eSmrg You can compile the package for more than one kind of computer at the 923a67387eSmrgsame time, by placing the object files for each architecture in their 933a67387eSmrgown directory. To do this, you can use GNU `make'. `cd' to the 943a67387eSmrgdirectory where you want the object files and executables to go and run 953a67387eSmrgthe `configure' script. `configure' automatically checks for the 963a67387eSmrgsource code in the directory that `configure' is in and in `..'. 973a67387eSmrg 983a67387eSmrg With a non-GNU `make', it is safer to compile the package for one 993a67387eSmrgarchitecture at a time in the source code directory. After you have 1003a67387eSmrginstalled the package for one architecture, use `make distclean' before 1013a67387eSmrgreconfiguring for another architecture. 1023a67387eSmrg 1033a67387eSmrg On MacOS X 10.5 and later systems, you can create libraries and 1043a67387eSmrgexecutables that work on multiple system types--known as "fat" or 1053a67387eSmrg"universal" binaries--by specifying multiple `-arch' options to the 1063a67387eSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1073a67387eSmrgthis: 1083a67387eSmrg 1093a67387eSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1103a67387eSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1113a67387eSmrg CPP="gcc -E" CXXCPP="g++ -E" 1123a67387eSmrg 1133a67387eSmrg This is not guaranteed to produce working output in all cases, you 1143a67387eSmrgmay have to build one architecture at a time and combine the results 1153a67387eSmrgusing the `lipo' tool if you have problems. 1163a67387eSmrg 1173a67387eSmrgInstallation Names 1183a67387eSmrg================== 1193a67387eSmrg 1203a67387eSmrg By default, `make install' installs the package's commands under 1213a67387eSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1223a67387eSmrgcan specify an installation prefix other than `/usr/local' by giving 1233a67387eSmrg`configure' the option `--prefix=PREFIX'. 1243a67387eSmrg 1253a67387eSmrg You can specify separate installation prefixes for 1263a67387eSmrgarchitecture-specific files and architecture-independent files. If you 1273a67387eSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1283a67387eSmrgPREFIX as the prefix for installing programs and libraries. 1293a67387eSmrgDocumentation and other data files still use the regular prefix. 1303a67387eSmrg 1313a67387eSmrg In addition, if you use an unusual directory layout you can give 1323a67387eSmrgoptions like `--bindir=DIR' to specify different values for particular 1333a67387eSmrgkinds of files. Run `configure --help' for a list of the directories 1343a67387eSmrgyou can set and what kinds of files go in them. 1353a67387eSmrg 1363a67387eSmrg If the package supports it, you can cause programs to be installed 1373a67387eSmrgwith an extra prefix or suffix on their names by giving `configure' the 1383a67387eSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1393a67387eSmrg 1403a67387eSmrgOptional Features 1413a67387eSmrg================= 1423a67387eSmrg 1433a67387eSmrg Some packages pay attention to `--enable-FEATURE' options to 1443a67387eSmrg`configure', where FEATURE indicates an optional part of the package. 1453a67387eSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1463a67387eSmrgis something like `gnu-as' or `x' (for the X Window System). The 1473a67387eSmrg`README' should mention any `--enable-' and `--with-' options that the 1483a67387eSmrgpackage recognizes. 1493a67387eSmrg 1503a67387eSmrg For packages that use the X Window System, `configure' can usually 1513a67387eSmrgfind the X include and library files automatically, but if it doesn't, 1523a67387eSmrgyou can use the `configure' options `--x-includes=DIR' and 1533a67387eSmrg`--x-libraries=DIR' to specify their locations. 1543a67387eSmrg 1553a67387eSmrgParticular systems 1563a67387eSmrg================== 1573a67387eSmrg 1583a67387eSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1593a67387eSmrgCC is not installed, it is recommended to use the following options in 1603a67387eSmrgorder to use an ANSI C compiler: 1613a67387eSmrg 1623a67387eSmrg ./configure CC="cc -Ae" 1633a67387eSmrg 1643a67387eSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1653a67387eSmrg 1663a67387eSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1673a67387eSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1683a67387eSmrga workaround. If GNU CC is not installed, it is therefore recommended 1693a67387eSmrgto try 1703a67387eSmrg 1713a67387eSmrg ./configure CC="cc" 1723a67387eSmrg 1733a67387eSmrgand if that doesn't work, try 1743a67387eSmrg 1753a67387eSmrg ./configure CC="cc -nodtk" 1763a67387eSmrg 1773a67387eSmrgSpecifying the System Type 1783a67387eSmrg========================== 1793a67387eSmrg 1803a67387eSmrg There may be some features `configure' cannot figure out 1813a67387eSmrgautomatically, but needs to determine by the type of machine the package 1823a67387eSmrgwill run on. Usually, assuming the package is built to be run on the 1833a67387eSmrg_same_ architectures, `configure' can figure that out, but if it prints 1843a67387eSmrga message saying it cannot guess the machine type, give it the 1853a67387eSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1863a67387eSmrgtype, such as `sun4', or a canonical name which has the form: 1873a67387eSmrg 1883a67387eSmrg CPU-COMPANY-SYSTEM 1893a67387eSmrg 1903a67387eSmrgwhere SYSTEM can have one of these forms: 1913a67387eSmrg 1923a67387eSmrg OS KERNEL-OS 1933a67387eSmrg 1943a67387eSmrg See the file `config.sub' for the possible values of each field. If 1953a67387eSmrg`config.sub' isn't included in this package, then this package doesn't 1963a67387eSmrgneed to know the machine type. 1973a67387eSmrg 1983a67387eSmrg If you are _building_ compiler tools for cross-compiling, you should 1993a67387eSmrguse the option `--target=TYPE' to select the type of system they will 2003a67387eSmrgproduce code for. 2013a67387eSmrg 2023a67387eSmrg If you want to _use_ a cross compiler, that generates code for a 2033a67387eSmrgplatform different from the build platform, you should specify the 2043a67387eSmrg"host" platform (i.e., that on which the generated programs will 2053a67387eSmrgeventually be run) with `--host=TYPE'. 2063a67387eSmrg 2073a67387eSmrgSharing Defaults 2083a67387eSmrg================ 2093a67387eSmrg 2103a67387eSmrg If you want to set default values for `configure' scripts to share, 2113a67387eSmrgyou can create a site shell script called `config.site' that gives 2123a67387eSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2133a67387eSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2143a67387eSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2153a67387eSmrg`CONFIG_SITE' environment variable to the location of the site script. 2163a67387eSmrgA warning: not all `configure' scripts look for a site script. 2173a67387eSmrg 2183a67387eSmrgDefining Variables 2193a67387eSmrg================== 2203a67387eSmrg 2213a67387eSmrg Variables not defined in a site shell script can be set in the 2223a67387eSmrgenvironment passed to `configure'. However, some packages may run 2233a67387eSmrgconfigure again during the build, and the customized values of these 2243a67387eSmrgvariables may be lost. In order to avoid this problem, you should set 2253a67387eSmrgthem in the `configure' command line, using `VAR=value'. For example: 2263a67387eSmrg 2273a67387eSmrg ./configure CC=/usr/local2/bin/gcc 2283a67387eSmrg 2293a67387eSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2303a67387eSmrgoverridden in the site shell script). 2313a67387eSmrg 2323a67387eSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2333a67387eSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2343a67387eSmrg 2353a67387eSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2363a67387eSmrg 2373a67387eSmrg`configure' Invocation 2383a67387eSmrg====================== 2393a67387eSmrg 2403a67387eSmrg `configure' recognizes the following options to control how it 2413a67387eSmrgoperates. 2423a67387eSmrg 2433a67387eSmrg`--help' 2443a67387eSmrg`-h' 2453a67387eSmrg Print a summary of all of the options to `configure', and exit. 2463a67387eSmrg 2473a67387eSmrg`--help=short' 2483a67387eSmrg`--help=recursive' 2493a67387eSmrg Print a summary of the options unique to this package's 2503a67387eSmrg `configure', and exit. The `short' variant lists options used 2513a67387eSmrg only in the top level, while the `recursive' variant lists options 2523a67387eSmrg also present in any nested packages. 2533a67387eSmrg 2543a67387eSmrg`--version' 2553a67387eSmrg`-V' 2563a67387eSmrg Print the version of Autoconf used to generate the `configure' 2573a67387eSmrg script, and exit. 2583a67387eSmrg 2593a67387eSmrg`--cache-file=FILE' 2603a67387eSmrg Enable the cache: use and save the results of the tests in FILE, 2613a67387eSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2623a67387eSmrg disable caching. 2633a67387eSmrg 2643a67387eSmrg`--config-cache' 2653a67387eSmrg`-C' 2663a67387eSmrg Alias for `--cache-file=config.cache'. 2673a67387eSmrg 2683a67387eSmrg`--quiet' 2693a67387eSmrg`--silent' 2703a67387eSmrg`-q' 2713a67387eSmrg Do not print messages saying which checks are being made. To 2723a67387eSmrg suppress all normal output, redirect it to `/dev/null' (any error 2733a67387eSmrg messages will still be shown). 2743a67387eSmrg 2753a67387eSmrg`--srcdir=DIR' 2763a67387eSmrg Look for the package's source code in directory DIR. Usually 2773a67387eSmrg `configure' can determine that directory automatically. 2783a67387eSmrg 2793a67387eSmrg`--prefix=DIR' 2803a67387eSmrg Use DIR as the installation prefix. *Note Installation Names:: 2813a67387eSmrg for more details, including other options available for fine-tuning 2823a67387eSmrg the installation locations. 2833a67387eSmrg 2843a67387eSmrg`--no-create' 2853a67387eSmrg`-n' 2863a67387eSmrg Run the configure checks, but stop before creating any output 2873a67387eSmrg files. 2883a67387eSmrg 2893a67387eSmrg`configure' also accepts some other, not widely useful, options. Run 2903a67387eSmrg`configure --help' for more details. 2913a67387eSmrg 292