INSTALL revision 7dff02fe
17dff02feSmrgInstallation Instructions 27dff02feSmrg************************* 37dff02feSmrg 47dff02feSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 57dff02feSmrg2006, 2007, 2008 Free Software Foundation, Inc. 67dff02feSmrg 77dff02feSmrg This file is free documentation; the Free Software Foundation gives 87dff02feSmrgunlimited permission to copy, distribute and modify it. 97dff02feSmrg 107dff02feSmrgBasic Installation 117dff02feSmrg================== 127dff02feSmrg 137dff02feSmrg Briefly, the shell commands `./configure; make; make install' should 147dff02feSmrgconfigure, build, and install this package. The following 157dff02feSmrgmore-detailed instructions are generic; see the `README' file for 167dff02feSmrginstructions specific to this package. 177dff02feSmrg 187dff02feSmrg The `configure' shell script attempts to guess correct values for 197dff02feSmrgvarious system-dependent variables used during compilation. It uses 207dff02feSmrgthose values to create a `Makefile' in each directory of the package. 217dff02feSmrgIt may also create one or more `.h' files containing system-dependent 227dff02feSmrgdefinitions. Finally, it creates a shell script `config.status' that 237dff02feSmrgyou can run in the future to recreate the current configuration, and a 247dff02feSmrgfile `config.log' containing compiler output (useful mainly for 257dff02feSmrgdebugging `configure'). 267dff02feSmrg 277dff02feSmrg It can also use an optional file (typically called `config.cache' 287dff02feSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 297dff02feSmrgthe results of its tests to speed up reconfiguring. Caching is 307dff02feSmrgdisabled by default to prevent problems with accidental use of stale 317dff02feSmrgcache files. 327dff02feSmrg 337dff02feSmrg If you need to do unusual things to compile the package, please try 347dff02feSmrgto figure out how `configure' could check whether to do them, and mail 357dff02feSmrgdiffs or instructions to the address given in the `README' so they can 367dff02feSmrgbe considered for the next release. If you are using the cache, and at 377dff02feSmrgsome point `config.cache' contains results you don't want to keep, you 387dff02feSmrgmay remove or edit it. 397dff02feSmrg 407dff02feSmrg The file `configure.ac' (or `configure.in') is used to create 417dff02feSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 427dff02feSmrgyou want to change it or regenerate `configure' using a newer version 437dff02feSmrgof `autoconf'. 447dff02feSmrg 457dff02feSmrgThe simplest way to compile this package is: 467dff02feSmrg 477dff02feSmrg 1. `cd' to the directory containing the package's source code and type 487dff02feSmrg `./configure' to configure the package for your system. 497dff02feSmrg 507dff02feSmrg Running `configure' might take a while. While running, it prints 517dff02feSmrg some messages telling which features it is checking for. 527dff02feSmrg 537dff02feSmrg 2. Type `make' to compile the package. 547dff02feSmrg 557dff02feSmrg 3. Optionally, type `make check' to run any self-tests that come with 567dff02feSmrg the package. 577dff02feSmrg 587dff02feSmrg 4. Type `make install' to install the programs and any data files and 597dff02feSmrg documentation. 607dff02feSmrg 617dff02feSmrg 5. You can remove the program binaries and object files from the 627dff02feSmrg source code directory by typing `make clean'. To also remove the 637dff02feSmrg files that `configure' created (so you can compile the package for 647dff02feSmrg a different kind of computer), type `make distclean'. There is 657dff02feSmrg also a `make maintainer-clean' target, but that is intended mainly 667dff02feSmrg for the package's developers. If you use it, you may have to get 677dff02feSmrg all sorts of other programs in order to regenerate files that came 687dff02feSmrg with the distribution. 697dff02feSmrg 707dff02feSmrg 6. Often, you can also type `make uninstall' to remove the installed 717dff02feSmrg files again. 727dff02feSmrg 737dff02feSmrgCompilers and Options 747dff02feSmrg===================== 757dff02feSmrg 767dff02feSmrg Some systems require unusual options for compilation or linking that 777dff02feSmrgthe `configure' script does not know about. Run `./configure --help' 787dff02feSmrgfor details on some of the pertinent environment variables. 797dff02feSmrg 807dff02feSmrg You can give `configure' initial values for configuration parameters 817dff02feSmrgby setting variables in the command line or in the environment. Here 827dff02feSmrgis an example: 837dff02feSmrg 847dff02feSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 857dff02feSmrg 867dff02feSmrg *Note Defining Variables::, for more details. 877dff02feSmrg 887dff02feSmrgCompiling For Multiple Architectures 897dff02feSmrg==================================== 907dff02feSmrg 917dff02feSmrg You can compile the package for more than one kind of computer at the 927dff02feSmrgsame time, by placing the object files for each architecture in their 937dff02feSmrgown directory. To do this, you can use GNU `make'. `cd' to the 947dff02feSmrgdirectory where you want the object files and executables to go and run 957dff02feSmrgthe `configure' script. `configure' automatically checks for the 967dff02feSmrgsource code in the directory that `configure' is in and in `..'. 977dff02feSmrg 987dff02feSmrg With a non-GNU `make', it is safer to compile the package for one 997dff02feSmrgarchitecture at a time in the source code directory. After you have 1007dff02feSmrginstalled the package for one architecture, use `make distclean' before 1017dff02feSmrgreconfiguring for another architecture. 1027dff02feSmrg 1037dff02feSmrg On MacOS X 10.5 and later systems, you can create libraries and 1047dff02feSmrgexecutables that work on multiple system types--known as "fat" or 1057dff02feSmrg"universal" binaries--by specifying multiple `-arch' options to the 1067dff02feSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1077dff02feSmrgthis: 1087dff02feSmrg 1097dff02feSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1107dff02feSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1117dff02feSmrg CPP="gcc -E" CXXCPP="g++ -E" 1127dff02feSmrg 1137dff02feSmrg This is not guaranteed to produce working output in all cases, you 1147dff02feSmrgmay have to build one architecture at a time and combine the results 1157dff02feSmrgusing the `lipo' tool if you have problems. 1167dff02feSmrg 1177dff02feSmrgInstallation Names 1187dff02feSmrg================== 1197dff02feSmrg 1207dff02feSmrg By default, `make install' installs the package's commands under 1217dff02feSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1227dff02feSmrgcan specify an installation prefix other than `/usr/local' by giving 1237dff02feSmrg`configure' the option `--prefix=PREFIX'. 1247dff02feSmrg 1257dff02feSmrg You can specify separate installation prefixes for 1267dff02feSmrgarchitecture-specific files and architecture-independent files. If you 1277dff02feSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1287dff02feSmrgPREFIX as the prefix for installing programs and libraries. 1297dff02feSmrgDocumentation and other data files still use the regular prefix. 1307dff02feSmrg 1317dff02feSmrg In addition, if you use an unusual directory layout you can give 1327dff02feSmrgoptions like `--bindir=DIR' to specify different values for particular 1337dff02feSmrgkinds of files. Run `configure --help' for a list of the directories 1347dff02feSmrgyou can set and what kinds of files go in them. 1357dff02feSmrg 1367dff02feSmrg If the package supports it, you can cause programs to be installed 1377dff02feSmrgwith an extra prefix or suffix on their names by giving `configure' the 1387dff02feSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1397dff02feSmrg 1407dff02feSmrgOptional Features 1417dff02feSmrg================= 1427dff02feSmrg 1437dff02feSmrg Some packages pay attention to `--enable-FEATURE' options to 1447dff02feSmrg`configure', where FEATURE indicates an optional part of the package. 1457dff02feSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1467dff02feSmrgis something like `gnu-as' or `x' (for the X Window System). The 1477dff02feSmrg`README' should mention any `--enable-' and `--with-' options that the 1487dff02feSmrgpackage recognizes. 1497dff02feSmrg 1507dff02feSmrg For packages that use the X Window System, `configure' can usually 1517dff02feSmrgfind the X include and library files automatically, but if it doesn't, 1527dff02feSmrgyou can use the `configure' options `--x-includes=DIR' and 1537dff02feSmrg`--x-libraries=DIR' to specify their locations. 1547dff02feSmrg 1557dff02feSmrgParticular systems 1567dff02feSmrg================== 1577dff02feSmrg 1587dff02feSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1597dff02feSmrgCC is not installed, it is recommended to use the following options in 1607dff02feSmrgorder to use an ANSI C compiler: 1617dff02feSmrg 1627dff02feSmrg ./configure CC="cc -Ae" 1637dff02feSmrg 1647dff02feSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1657dff02feSmrg 1667dff02feSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1677dff02feSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1687dff02feSmrga workaround. If GNU CC is not installed, it is therefore recommended 1697dff02feSmrgto try 1707dff02feSmrg 1717dff02feSmrg ./configure CC="cc" 1727dff02feSmrg 1737dff02feSmrgand if that doesn't work, try 1747dff02feSmrg 1757dff02feSmrg ./configure CC="cc -nodtk" 1767dff02feSmrg 1777dff02feSmrgSpecifying the System Type 1787dff02feSmrg========================== 1797dff02feSmrg 1807dff02feSmrg There may be some features `configure' cannot figure out 1817dff02feSmrgautomatically, but needs to determine by the type of machine the package 1827dff02feSmrgwill run on. Usually, assuming the package is built to be run on the 1837dff02feSmrg_same_ architectures, `configure' can figure that out, but if it prints 1847dff02feSmrga message saying it cannot guess the machine type, give it the 1857dff02feSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1867dff02feSmrgtype, such as `sun4', or a canonical name which has the form: 1877dff02feSmrg 1887dff02feSmrg CPU-COMPANY-SYSTEM 1897dff02feSmrg 1907dff02feSmrgwhere SYSTEM can have one of these forms: 1917dff02feSmrg 1927dff02feSmrg OS KERNEL-OS 1937dff02feSmrg 1947dff02feSmrg See the file `config.sub' for the possible values of each field. If 1957dff02feSmrg`config.sub' isn't included in this package, then this package doesn't 1967dff02feSmrgneed to know the machine type. 1977dff02feSmrg 1987dff02feSmrg If you are _building_ compiler tools for cross-compiling, you should 1997dff02feSmrguse the option `--target=TYPE' to select the type of system they will 2007dff02feSmrgproduce code for. 2017dff02feSmrg 2027dff02feSmrg If you want to _use_ a cross compiler, that generates code for a 2037dff02feSmrgplatform different from the build platform, you should specify the 2047dff02feSmrg"host" platform (i.e., that on which the generated programs will 2057dff02feSmrgeventually be run) with `--host=TYPE'. 2067dff02feSmrg 2077dff02feSmrgSharing Defaults 2087dff02feSmrg================ 2097dff02feSmrg 2107dff02feSmrg If you want to set default values for `configure' scripts to share, 2117dff02feSmrgyou can create a site shell script called `config.site' that gives 2127dff02feSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2137dff02feSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2147dff02feSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2157dff02feSmrg`CONFIG_SITE' environment variable to the location of the site script. 2167dff02feSmrgA warning: not all `configure' scripts look for a site script. 2177dff02feSmrg 2187dff02feSmrgDefining Variables 2197dff02feSmrg================== 2207dff02feSmrg 2217dff02feSmrg Variables not defined in a site shell script can be set in the 2227dff02feSmrgenvironment passed to `configure'. However, some packages may run 2237dff02feSmrgconfigure again during the build, and the customized values of these 2247dff02feSmrgvariables may be lost. In order to avoid this problem, you should set 2257dff02feSmrgthem in the `configure' command line, using `VAR=value'. For example: 2267dff02feSmrg 2277dff02feSmrg ./configure CC=/usr/local2/bin/gcc 2287dff02feSmrg 2297dff02feSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2307dff02feSmrgoverridden in the site shell script). 2317dff02feSmrg 2327dff02feSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2337dff02feSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2347dff02feSmrg 2357dff02feSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2367dff02feSmrg 2377dff02feSmrg`configure' Invocation 2387dff02feSmrg====================== 2397dff02feSmrg 2407dff02feSmrg `configure' recognizes the following options to control how it 2417dff02feSmrgoperates. 2427dff02feSmrg 2437dff02feSmrg`--help' 2447dff02feSmrg`-h' 2457dff02feSmrg Print a summary of all of the options to `configure', and exit. 2467dff02feSmrg 2477dff02feSmrg`--help=short' 2487dff02feSmrg`--help=recursive' 2497dff02feSmrg Print a summary of the options unique to this package's 2507dff02feSmrg `configure', and exit. The `short' variant lists options used 2517dff02feSmrg only in the top level, while the `recursive' variant lists options 2527dff02feSmrg also present in any nested packages. 2537dff02feSmrg 2547dff02feSmrg`--version' 2557dff02feSmrg`-V' 2567dff02feSmrg Print the version of Autoconf used to generate the `configure' 2577dff02feSmrg script, and exit. 2587dff02feSmrg 2597dff02feSmrg`--cache-file=FILE' 2607dff02feSmrg Enable the cache: use and save the results of the tests in FILE, 2617dff02feSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2627dff02feSmrg disable caching. 2637dff02feSmrg 2647dff02feSmrg`--config-cache' 2657dff02feSmrg`-C' 2667dff02feSmrg Alias for `--cache-file=config.cache'. 2677dff02feSmrg 2687dff02feSmrg`--quiet' 2697dff02feSmrg`--silent' 2707dff02feSmrg`-q' 2717dff02feSmrg Do not print messages saying which checks are being made. To 2727dff02feSmrg suppress all normal output, redirect it to `/dev/null' (any error 2737dff02feSmrg messages will still be shown). 2747dff02feSmrg 2757dff02feSmrg`--srcdir=DIR' 2767dff02feSmrg Look for the package's source code in directory DIR. Usually 2777dff02feSmrg `configure' can determine that directory automatically. 2787dff02feSmrg 2797dff02feSmrg`--prefix=DIR' 2807dff02feSmrg Use DIR as the installation prefix. *Note Installation Names:: 2817dff02feSmrg for more details, including other options available for fine-tuning 2827dff02feSmrg the installation locations. 2837dff02feSmrg 2847dff02feSmrg`--no-create' 2857dff02feSmrg`-n' 2867dff02feSmrg Run the configure checks, but stop before creating any output 2877dff02feSmrg files. 2887dff02feSmrg 2897dff02feSmrg`configure' also accepts some other, not widely useful, options. Run 2907dff02feSmrg`configure --help' for more details. 2917dff02feSmrg 292