INSTALL revision 1c43011a
11c43011aSmrgInstallation Instructions 21c43011aSmrg************************* 31c43011aSmrg 41c43011aSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 51c43011aSmrg2006, 2007, 2008 Free Software Foundation, Inc. 61c43011aSmrg 71c43011aSmrg This file is free documentation; the Free Software Foundation gives 81c43011aSmrgunlimited permission to copy, distribute and modify it. 91c43011aSmrg 101c43011aSmrgBasic Installation 111c43011aSmrg================== 121c43011aSmrg 131c43011aSmrg Briefly, the shell commands `./configure; make; make install' should 141c43011aSmrgconfigure, build, and install this package. The following 151c43011aSmrgmore-detailed instructions are generic; see the `README' file for 161c43011aSmrginstructions specific to this package. 171c43011aSmrg 181c43011aSmrg The `configure' shell script attempts to guess correct values for 191c43011aSmrgvarious system-dependent variables used during compilation. It uses 201c43011aSmrgthose values to create a `Makefile' in each directory of the package. 211c43011aSmrgIt may also create one or more `.h' files containing system-dependent 221c43011aSmrgdefinitions. Finally, it creates a shell script `config.status' that 231c43011aSmrgyou can run in the future to recreate the current configuration, and a 241c43011aSmrgfile `config.log' containing compiler output (useful mainly for 251c43011aSmrgdebugging `configure'). 261c43011aSmrg 271c43011aSmrg It can also use an optional file (typically called `config.cache' 281c43011aSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 291c43011aSmrgthe results of its tests to speed up reconfiguring. Caching is 301c43011aSmrgdisabled by default to prevent problems with accidental use of stale 311c43011aSmrgcache files. 321c43011aSmrg 331c43011aSmrg If you need to do unusual things to compile the package, please try 341c43011aSmrgto figure out how `configure' could check whether to do them, and mail 351c43011aSmrgdiffs or instructions to the address given in the `README' so they can 361c43011aSmrgbe considered for the next release. If you are using the cache, and at 371c43011aSmrgsome point `config.cache' contains results you don't want to keep, you 381c43011aSmrgmay remove or edit it. 391c43011aSmrg 401c43011aSmrg The file `configure.ac' (or `configure.in') is used to create 411c43011aSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 421c43011aSmrgyou want to change it or regenerate `configure' using a newer version 431c43011aSmrgof `autoconf'. 441c43011aSmrg 451c43011aSmrgThe simplest way to compile this package is: 461c43011aSmrg 471c43011aSmrg 1. `cd' to the directory containing the package's source code and type 481c43011aSmrg `./configure' to configure the package for your system. 491c43011aSmrg 501c43011aSmrg Running `configure' might take a while. While running, it prints 511c43011aSmrg some messages telling which features it is checking for. 521c43011aSmrg 531c43011aSmrg 2. Type `make' to compile the package. 541c43011aSmrg 551c43011aSmrg 3. Optionally, type `make check' to run any self-tests that come with 561c43011aSmrg the package. 571c43011aSmrg 581c43011aSmrg 4. Type `make install' to install the programs and any data files and 591c43011aSmrg documentation. 601c43011aSmrg 611c43011aSmrg 5. You can remove the program binaries and object files from the 621c43011aSmrg source code directory by typing `make clean'. To also remove the 631c43011aSmrg files that `configure' created (so you can compile the package for 641c43011aSmrg a different kind of computer), type `make distclean'. There is 651c43011aSmrg also a `make maintainer-clean' target, but that is intended mainly 661c43011aSmrg for the package's developers. If you use it, you may have to get 671c43011aSmrg all sorts of other programs in order to regenerate files that came 681c43011aSmrg with the distribution. 691c43011aSmrg 701c43011aSmrg 6. Often, you can also type `make uninstall' to remove the installed 711c43011aSmrg files again. 721c43011aSmrg 731c43011aSmrgCompilers and Options 741c43011aSmrg===================== 751c43011aSmrg 761c43011aSmrg Some systems require unusual options for compilation or linking that 771c43011aSmrgthe `configure' script does not know about. Run `./configure --help' 781c43011aSmrgfor details on some of the pertinent environment variables. 791c43011aSmrg 801c43011aSmrg You can give `configure' initial values for configuration parameters 811c43011aSmrgby setting variables in the command line or in the environment. Here 821c43011aSmrgis an example: 831c43011aSmrg 841c43011aSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 851c43011aSmrg 861c43011aSmrg *Note Defining Variables::, for more details. 871c43011aSmrg 881c43011aSmrgCompiling For Multiple Architectures 891c43011aSmrg==================================== 901c43011aSmrg 911c43011aSmrg You can compile the package for more than one kind of computer at the 921c43011aSmrgsame time, by placing the object files for each architecture in their 931c43011aSmrgown directory. To do this, you can use GNU `make'. `cd' to the 941c43011aSmrgdirectory where you want the object files and executables to go and run 951c43011aSmrgthe `configure' script. `configure' automatically checks for the 961c43011aSmrgsource code in the directory that `configure' is in and in `..'. 971c43011aSmrg 981c43011aSmrg With a non-GNU `make', it is safer to compile the package for one 991c43011aSmrgarchitecture at a time in the source code directory. After you have 1001c43011aSmrginstalled the package for one architecture, use `make distclean' before 1011c43011aSmrgreconfiguring for another architecture. 1021c43011aSmrg 1031c43011aSmrg On MacOS X 10.5 and later systems, you can create libraries and 1041c43011aSmrgexecutables that work on multiple system types--known as "fat" or 1051c43011aSmrg"universal" binaries--by specifying multiple `-arch' options to the 1061c43011aSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1071c43011aSmrgthis: 1081c43011aSmrg 1091c43011aSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1101c43011aSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1111c43011aSmrg CPP="gcc -E" CXXCPP="g++ -E" 1121c43011aSmrg 1131c43011aSmrg This is not guaranteed to produce working output in all cases, you 1141c43011aSmrgmay have to build one architecture at a time and combine the results 1151c43011aSmrgusing the `lipo' tool if you have problems. 1161c43011aSmrg 1171c43011aSmrgInstallation Names 1181c43011aSmrg================== 1191c43011aSmrg 1201c43011aSmrg By default, `make install' installs the package's commands under 1211c43011aSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1221c43011aSmrgcan specify an installation prefix other than `/usr/local' by giving 1231c43011aSmrg`configure' the option `--prefix=PREFIX'. 1241c43011aSmrg 1251c43011aSmrg You can specify separate installation prefixes for 1261c43011aSmrgarchitecture-specific files and architecture-independent files. If you 1271c43011aSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1281c43011aSmrgPREFIX as the prefix for installing programs and libraries. 1291c43011aSmrgDocumentation and other data files still use the regular prefix. 1301c43011aSmrg 1311c43011aSmrg In addition, if you use an unusual directory layout you can give 1321c43011aSmrgoptions like `--bindir=DIR' to specify different values for particular 1331c43011aSmrgkinds of files. Run `configure --help' for a list of the directories 1341c43011aSmrgyou can set and what kinds of files go in them. 1351c43011aSmrg 1361c43011aSmrg If the package supports it, you can cause programs to be installed 1371c43011aSmrgwith an extra prefix or suffix on their names by giving `configure' the 1381c43011aSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1391c43011aSmrg 1401c43011aSmrgOptional Features 1411c43011aSmrg================= 1421c43011aSmrg 1431c43011aSmrg Some packages pay attention to `--enable-FEATURE' options to 1441c43011aSmrg`configure', where FEATURE indicates an optional part of the package. 1451c43011aSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1461c43011aSmrgis something like `gnu-as' or `x' (for the X Window System). The 1471c43011aSmrg`README' should mention any `--enable-' and `--with-' options that the 1481c43011aSmrgpackage recognizes. 1491c43011aSmrg 1501c43011aSmrg For packages that use the X Window System, `configure' can usually 1511c43011aSmrgfind the X include and library files automatically, but if it doesn't, 1521c43011aSmrgyou can use the `configure' options `--x-includes=DIR' and 1531c43011aSmrg`--x-libraries=DIR' to specify their locations. 1541c43011aSmrg 1551c43011aSmrgParticular systems 1561c43011aSmrg================== 1571c43011aSmrg 1581c43011aSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1591c43011aSmrgCC is not installed, it is recommended to use the following options in 1601c43011aSmrgorder to use an ANSI C compiler: 1611c43011aSmrg 1621c43011aSmrg ./configure CC="cc -Ae" 1631c43011aSmrg 1641c43011aSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1651c43011aSmrg 1661c43011aSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1671c43011aSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1681c43011aSmrga workaround. If GNU CC is not installed, it is therefore recommended 1691c43011aSmrgto try 1701c43011aSmrg 1711c43011aSmrg ./configure CC="cc" 1721c43011aSmrg 1731c43011aSmrgand if that doesn't work, try 1741c43011aSmrg 1751c43011aSmrg ./configure CC="cc -nodtk" 1761c43011aSmrg 1771c43011aSmrgSpecifying the System Type 1781c43011aSmrg========================== 1791c43011aSmrg 1801c43011aSmrg There may be some features `configure' cannot figure out 1811c43011aSmrgautomatically, but needs to determine by the type of machine the package 1821c43011aSmrgwill run on. Usually, assuming the package is built to be run on the 1831c43011aSmrg_same_ architectures, `configure' can figure that out, but if it prints 1841c43011aSmrga message saying it cannot guess the machine type, give it the 1851c43011aSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1861c43011aSmrgtype, such as `sun4', or a canonical name which has the form: 1871c43011aSmrg 1881c43011aSmrg CPU-COMPANY-SYSTEM 1891c43011aSmrg 1901c43011aSmrgwhere SYSTEM can have one of these forms: 1911c43011aSmrg 1921c43011aSmrg OS KERNEL-OS 1931c43011aSmrg 1941c43011aSmrg See the file `config.sub' for the possible values of each field. If 1951c43011aSmrg`config.sub' isn't included in this package, then this package doesn't 1961c43011aSmrgneed to know the machine type. 1971c43011aSmrg 1981c43011aSmrg If you are _building_ compiler tools for cross-compiling, you should 1991c43011aSmrguse the option `--target=TYPE' to select the type of system they will 2001c43011aSmrgproduce code for. 2011c43011aSmrg 2021c43011aSmrg If you want to _use_ a cross compiler, that generates code for a 2031c43011aSmrgplatform different from the build platform, you should specify the 2041c43011aSmrg"host" platform (i.e., that on which the generated programs will 2051c43011aSmrgeventually be run) with `--host=TYPE'. 2061c43011aSmrg 2071c43011aSmrgSharing Defaults 2081c43011aSmrg================ 2091c43011aSmrg 2101c43011aSmrg If you want to set default values for `configure' scripts to share, 2111c43011aSmrgyou can create a site shell script called `config.site' that gives 2121c43011aSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2131c43011aSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2141c43011aSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2151c43011aSmrg`CONFIG_SITE' environment variable to the location of the site script. 2161c43011aSmrgA warning: not all `configure' scripts look for a site script. 2171c43011aSmrg 2181c43011aSmrgDefining Variables 2191c43011aSmrg================== 2201c43011aSmrg 2211c43011aSmrg Variables not defined in a site shell script can be set in the 2221c43011aSmrgenvironment passed to `configure'. However, some packages may run 2231c43011aSmrgconfigure again during the build, and the customized values of these 2241c43011aSmrgvariables may be lost. In order to avoid this problem, you should set 2251c43011aSmrgthem in the `configure' command line, using `VAR=value'. For example: 2261c43011aSmrg 2271c43011aSmrg ./configure CC=/usr/local2/bin/gcc 2281c43011aSmrg 2291c43011aSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2301c43011aSmrgoverridden in the site shell script). 2311c43011aSmrg 2321c43011aSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2331c43011aSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2341c43011aSmrg 2351c43011aSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2361c43011aSmrg 2371c43011aSmrg`configure' Invocation 2381c43011aSmrg====================== 2391c43011aSmrg 2401c43011aSmrg `configure' recognizes the following options to control how it 2411c43011aSmrgoperates. 2421c43011aSmrg 2431c43011aSmrg`--help' 2441c43011aSmrg`-h' 2451c43011aSmrg Print a summary of all of the options to `configure', and exit. 2461c43011aSmrg 2471c43011aSmrg`--help=short' 2481c43011aSmrg`--help=recursive' 2491c43011aSmrg Print a summary of the options unique to this package's 2501c43011aSmrg `configure', and exit. The `short' variant lists options used 2511c43011aSmrg only in the top level, while the `recursive' variant lists options 2521c43011aSmrg also present in any nested packages. 2531c43011aSmrg 2541c43011aSmrg`--version' 2551c43011aSmrg`-V' 2561c43011aSmrg Print the version of Autoconf used to generate the `configure' 2571c43011aSmrg script, and exit. 2581c43011aSmrg 2591c43011aSmrg`--cache-file=FILE' 2601c43011aSmrg Enable the cache: use and save the results of the tests in FILE, 2611c43011aSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2621c43011aSmrg disable caching. 2631c43011aSmrg 2641c43011aSmrg`--config-cache' 2651c43011aSmrg`-C' 2661c43011aSmrg Alias for `--cache-file=config.cache'. 2671c43011aSmrg 2681c43011aSmrg`--quiet' 2691c43011aSmrg`--silent' 2701c43011aSmrg`-q' 2711c43011aSmrg Do not print messages saying which checks are being made. To 2721c43011aSmrg suppress all normal output, redirect it to `/dev/null' (any error 2731c43011aSmrg messages will still be shown). 2741c43011aSmrg 2751c43011aSmrg`--srcdir=DIR' 2761c43011aSmrg Look for the package's source code in directory DIR. Usually 2771c43011aSmrg `configure' can determine that directory automatically. 2781c43011aSmrg 2791c43011aSmrg`--prefix=DIR' 2801c43011aSmrg Use DIR as the installation prefix. *Note Installation Names:: 2811c43011aSmrg for more details, including other options available for fine-tuning 2821c43011aSmrg the installation locations. 2831c43011aSmrg 2841c43011aSmrg`--no-create' 2851c43011aSmrg`-n' 2861c43011aSmrg Run the configure checks, but stop before creating any output 2871c43011aSmrg files. 2881c43011aSmrg 2891c43011aSmrg`configure' also accepts some other, not widely useful, options. Run 2901c43011aSmrg`configure --help' for more details. 2911c43011aSmrg 292