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