INSTALL revision 6f5dd5c2
16f5dd5c2SmrgInstallation Instructions 26f5dd5c2Smrg************************* 36f5dd5c2Smrg 46f5dd5c2SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 56f5dd5c2Smrg2006, 2007, 2008 Free Software Foundation, Inc. 66f5dd5c2Smrg 76f5dd5c2Smrg This file is free documentation; the Free Software Foundation gives 86f5dd5c2Smrgunlimited permission to copy, distribute and modify it. 96f5dd5c2Smrg 106f5dd5c2SmrgBasic Installation 116f5dd5c2Smrg================== 126f5dd5c2Smrg 136f5dd5c2Smrg Briefly, the shell commands `./configure; make; make install' should 146f5dd5c2Smrgconfigure, build, and install this package. The following 156f5dd5c2Smrgmore-detailed instructions are generic; see the `README' file for 166f5dd5c2Smrginstructions specific to this package. 176f5dd5c2Smrg 186f5dd5c2Smrg The `configure' shell script attempts to guess correct values for 196f5dd5c2Smrgvarious system-dependent variables used during compilation. It uses 206f5dd5c2Smrgthose values to create a `Makefile' in each directory of the package. 216f5dd5c2SmrgIt may also create one or more `.h' files containing system-dependent 226f5dd5c2Smrgdefinitions. Finally, it creates a shell script `config.status' that 236f5dd5c2Smrgyou can run in the future to recreate the current configuration, and a 246f5dd5c2Smrgfile `config.log' containing compiler output (useful mainly for 256f5dd5c2Smrgdebugging `configure'). 266f5dd5c2Smrg 276f5dd5c2Smrg It can also use an optional file (typically called `config.cache' 286f5dd5c2Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 296f5dd5c2Smrgthe results of its tests to speed up reconfiguring. Caching is 306f5dd5c2Smrgdisabled by default to prevent problems with accidental use of stale 316f5dd5c2Smrgcache files. 326f5dd5c2Smrg 336f5dd5c2Smrg If you need to do unusual things to compile the package, please try 346f5dd5c2Smrgto figure out how `configure' could check whether to do them, and mail 356f5dd5c2Smrgdiffs or instructions to the address given in the `README' so they can 366f5dd5c2Smrgbe considered for the next release. If you are using the cache, and at 376f5dd5c2Smrgsome point `config.cache' contains results you don't want to keep, you 386f5dd5c2Smrgmay remove or edit it. 396f5dd5c2Smrg 406f5dd5c2Smrg The file `configure.ac' (or `configure.in') is used to create 416f5dd5c2Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 426f5dd5c2Smrgyou want to change it or regenerate `configure' using a newer version 436f5dd5c2Smrgof `autoconf'. 446f5dd5c2Smrg 456f5dd5c2SmrgThe simplest way to compile this package is: 466f5dd5c2Smrg 476f5dd5c2Smrg 1. `cd' to the directory containing the package's source code and type 486f5dd5c2Smrg `./configure' to configure the package for your system. 496f5dd5c2Smrg 506f5dd5c2Smrg Running `configure' might take a while. While running, it prints 516f5dd5c2Smrg some messages telling which features it is checking for. 526f5dd5c2Smrg 536f5dd5c2Smrg 2. Type `make' to compile the package. 546f5dd5c2Smrg 556f5dd5c2Smrg 3. Optionally, type `make check' to run any self-tests that come with 566f5dd5c2Smrg the package. 576f5dd5c2Smrg 586f5dd5c2Smrg 4. Type `make install' to install the programs and any data files and 596f5dd5c2Smrg documentation. 606f5dd5c2Smrg 616f5dd5c2Smrg 5. You can remove the program binaries and object files from the 626f5dd5c2Smrg source code directory by typing `make clean'. To also remove the 636f5dd5c2Smrg files that `configure' created (so you can compile the package for 646f5dd5c2Smrg a different kind of computer), type `make distclean'. There is 656f5dd5c2Smrg also a `make maintainer-clean' target, but that is intended mainly 666f5dd5c2Smrg for the package's developers. If you use it, you may have to get 676f5dd5c2Smrg all sorts of other programs in order to regenerate files that came 686f5dd5c2Smrg with the distribution. 696f5dd5c2Smrg 706f5dd5c2Smrg 6. Often, you can also type `make uninstall' to remove the installed 716f5dd5c2Smrg files again. 726f5dd5c2Smrg 736f5dd5c2SmrgCompilers and Options 746f5dd5c2Smrg===================== 756f5dd5c2Smrg 766f5dd5c2Smrg Some systems require unusual options for compilation or linking that 776f5dd5c2Smrgthe `configure' script does not know about. Run `./configure --help' 786f5dd5c2Smrgfor details on some of the pertinent environment variables. 796f5dd5c2Smrg 806f5dd5c2Smrg You can give `configure' initial values for configuration parameters 816f5dd5c2Smrgby setting variables in the command line or in the environment. Here 826f5dd5c2Smrgis an example: 836f5dd5c2Smrg 846f5dd5c2Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 856f5dd5c2Smrg 866f5dd5c2Smrg *Note Defining Variables::, for more details. 876f5dd5c2Smrg 886f5dd5c2SmrgCompiling For Multiple Architectures 896f5dd5c2Smrg==================================== 906f5dd5c2Smrg 916f5dd5c2Smrg You can compile the package for more than one kind of computer at the 926f5dd5c2Smrgsame time, by placing the object files for each architecture in their 936f5dd5c2Smrgown directory. To do this, you can use GNU `make'. `cd' to the 946f5dd5c2Smrgdirectory where you want the object files and executables to go and run 956f5dd5c2Smrgthe `configure' script. `configure' automatically checks for the 966f5dd5c2Smrgsource code in the directory that `configure' is in and in `..'. 976f5dd5c2Smrg 986f5dd5c2Smrg With a non-GNU `make', it is safer to compile the package for one 996f5dd5c2Smrgarchitecture at a time in the source code directory. After you have 1006f5dd5c2Smrginstalled the package for one architecture, use `make distclean' before 1016f5dd5c2Smrgreconfiguring for another architecture. 1026f5dd5c2Smrg 1036f5dd5c2Smrg On MacOS X 10.5 and later systems, you can create libraries and 1046f5dd5c2Smrgexecutables that work on multiple system types--known as "fat" or 1056f5dd5c2Smrg"universal" binaries--by specifying multiple `-arch' options to the 1066f5dd5c2Smrgcompiler but only a single `-arch' option to the preprocessor. Like 1076f5dd5c2Smrgthis: 1086f5dd5c2Smrg 1096f5dd5c2Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1106f5dd5c2Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1116f5dd5c2Smrg CPP="gcc -E" CXXCPP="g++ -E" 1126f5dd5c2Smrg 1136f5dd5c2Smrg This is not guaranteed to produce working output in all cases, you 1146f5dd5c2Smrgmay have to build one architecture at a time and combine the results 1156f5dd5c2Smrgusing the `lipo' tool if you have problems. 1166f5dd5c2Smrg 1176f5dd5c2SmrgInstallation Names 1186f5dd5c2Smrg================== 1196f5dd5c2Smrg 1206f5dd5c2Smrg By default, `make install' installs the package's commands under 1216f5dd5c2Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1226f5dd5c2Smrgcan specify an installation prefix other than `/usr/local' by giving 1236f5dd5c2Smrg`configure' the option `--prefix=PREFIX'. 1246f5dd5c2Smrg 1256f5dd5c2Smrg You can specify separate installation prefixes for 1266f5dd5c2Smrgarchitecture-specific files and architecture-independent files. If you 1276f5dd5c2Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1286f5dd5c2SmrgPREFIX as the prefix for installing programs and libraries. 1296f5dd5c2SmrgDocumentation and other data files still use the regular prefix. 1306f5dd5c2Smrg 1316f5dd5c2Smrg In addition, if you use an unusual directory layout you can give 1326f5dd5c2Smrgoptions like `--bindir=DIR' to specify different values for particular 1336f5dd5c2Smrgkinds of files. Run `configure --help' for a list of the directories 1346f5dd5c2Smrgyou can set and what kinds of files go in them. 1356f5dd5c2Smrg 1366f5dd5c2Smrg If the package supports it, you can cause programs to be installed 1376f5dd5c2Smrgwith an extra prefix or suffix on their names by giving `configure' the 1386f5dd5c2Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1396f5dd5c2Smrg 1406f5dd5c2SmrgOptional Features 1416f5dd5c2Smrg================= 1426f5dd5c2Smrg 1436f5dd5c2Smrg Some packages pay attention to `--enable-FEATURE' options to 1446f5dd5c2Smrg`configure', where FEATURE indicates an optional part of the package. 1456f5dd5c2SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1466f5dd5c2Smrgis something like `gnu-as' or `x' (for the X Window System). The 1476f5dd5c2Smrg`README' should mention any `--enable-' and `--with-' options that the 1486f5dd5c2Smrgpackage recognizes. 1496f5dd5c2Smrg 1506f5dd5c2Smrg For packages that use the X Window System, `configure' can usually 1516f5dd5c2Smrgfind the X include and library files automatically, but if it doesn't, 1526f5dd5c2Smrgyou can use the `configure' options `--x-includes=DIR' and 1536f5dd5c2Smrg`--x-libraries=DIR' to specify their locations. 1546f5dd5c2Smrg 1556f5dd5c2SmrgParticular systems 1566f5dd5c2Smrg================== 1576f5dd5c2Smrg 1586f5dd5c2Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1596f5dd5c2SmrgCC is not installed, it is recommended to use the following options in 1606f5dd5c2Smrgorder to use an ANSI C compiler: 1616f5dd5c2Smrg 1626f5dd5c2Smrg ./configure CC="cc -Ae" 1636f5dd5c2Smrg 1646f5dd5c2Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1656f5dd5c2Smrg 1666f5dd5c2Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1676f5dd5c2Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1686f5dd5c2Smrga workaround. If GNU CC is not installed, it is therefore recommended 1696f5dd5c2Smrgto try 1706f5dd5c2Smrg 1716f5dd5c2Smrg ./configure CC="cc" 1726f5dd5c2Smrg 1736f5dd5c2Smrgand if that doesn't work, try 1746f5dd5c2Smrg 1756f5dd5c2Smrg ./configure CC="cc -nodtk" 1766f5dd5c2Smrg 1776f5dd5c2SmrgSpecifying the System Type 1786f5dd5c2Smrg========================== 1796f5dd5c2Smrg 1806f5dd5c2Smrg There may be some features `configure' cannot figure out 1816f5dd5c2Smrgautomatically, but needs to determine by the type of machine the package 1826f5dd5c2Smrgwill run on. Usually, assuming the package is built to be run on the 1836f5dd5c2Smrg_same_ architectures, `configure' can figure that out, but if it prints 1846f5dd5c2Smrga message saying it cannot guess the machine type, give it the 1856f5dd5c2Smrg`--build=TYPE' option. TYPE can either be a short name for the system 1866f5dd5c2Smrgtype, such as `sun4', or a canonical name which has the form: 1876f5dd5c2Smrg 1886f5dd5c2Smrg CPU-COMPANY-SYSTEM 1896f5dd5c2Smrg 1906f5dd5c2Smrgwhere SYSTEM can have one of these forms: 1916f5dd5c2Smrg 1926f5dd5c2Smrg OS KERNEL-OS 1936f5dd5c2Smrg 1946f5dd5c2Smrg See the file `config.sub' for the possible values of each field. If 1956f5dd5c2Smrg`config.sub' isn't included in this package, then this package doesn't 1966f5dd5c2Smrgneed to know the machine type. 1976f5dd5c2Smrg 1986f5dd5c2Smrg If you are _building_ compiler tools for cross-compiling, you should 1996f5dd5c2Smrguse the option `--target=TYPE' to select the type of system they will 2006f5dd5c2Smrgproduce code for. 2016f5dd5c2Smrg 2026f5dd5c2Smrg If you want to _use_ a cross compiler, that generates code for a 2036f5dd5c2Smrgplatform different from the build platform, you should specify the 2046f5dd5c2Smrg"host" platform (i.e., that on which the generated programs will 2056f5dd5c2Smrgeventually be run) with `--host=TYPE'. 2066f5dd5c2Smrg 2076f5dd5c2SmrgSharing Defaults 2086f5dd5c2Smrg================ 2096f5dd5c2Smrg 2106f5dd5c2Smrg If you want to set default values for `configure' scripts to share, 2116f5dd5c2Smrgyou can create a site shell script called `config.site' that gives 2126f5dd5c2Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 2136f5dd5c2Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2146f5dd5c2Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2156f5dd5c2Smrg`CONFIG_SITE' environment variable to the location of the site script. 2166f5dd5c2SmrgA warning: not all `configure' scripts look for a site script. 2176f5dd5c2Smrg 2186f5dd5c2SmrgDefining Variables 2196f5dd5c2Smrg================== 2206f5dd5c2Smrg 2216f5dd5c2Smrg Variables not defined in a site shell script can be set in the 2226f5dd5c2Smrgenvironment passed to `configure'. However, some packages may run 2236f5dd5c2Smrgconfigure again during the build, and the customized values of these 2246f5dd5c2Smrgvariables may be lost. In order to avoid this problem, you should set 2256f5dd5c2Smrgthem in the `configure' command line, using `VAR=value'. For example: 2266f5dd5c2Smrg 2276f5dd5c2Smrg ./configure CC=/usr/local2/bin/gcc 2286f5dd5c2Smrg 2296f5dd5c2Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 2306f5dd5c2Smrgoverridden in the site shell script). 2316f5dd5c2Smrg 2326f5dd5c2SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2336f5dd5c2Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2346f5dd5c2Smrg 2356f5dd5c2Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2366f5dd5c2Smrg 2376f5dd5c2Smrg`configure' Invocation 2386f5dd5c2Smrg====================== 2396f5dd5c2Smrg 2406f5dd5c2Smrg `configure' recognizes the following options to control how it 2416f5dd5c2Smrgoperates. 2426f5dd5c2Smrg 2436f5dd5c2Smrg`--help' 2446f5dd5c2Smrg`-h' 2456f5dd5c2Smrg Print a summary of all of the options to `configure', and exit. 2466f5dd5c2Smrg 2476f5dd5c2Smrg`--help=short' 2486f5dd5c2Smrg`--help=recursive' 2496f5dd5c2Smrg Print a summary of the options unique to this package's 2506f5dd5c2Smrg `configure', and exit. The `short' variant lists options used 2516f5dd5c2Smrg only in the top level, while the `recursive' variant lists options 2526f5dd5c2Smrg also present in any nested packages. 2536f5dd5c2Smrg 2546f5dd5c2Smrg`--version' 2556f5dd5c2Smrg`-V' 2566f5dd5c2Smrg Print the version of Autoconf used to generate the `configure' 2576f5dd5c2Smrg script, and exit. 2586f5dd5c2Smrg 2596f5dd5c2Smrg`--cache-file=FILE' 2606f5dd5c2Smrg Enable the cache: use and save the results of the tests in FILE, 2616f5dd5c2Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2626f5dd5c2Smrg disable caching. 2636f5dd5c2Smrg 2646f5dd5c2Smrg`--config-cache' 2656f5dd5c2Smrg`-C' 2666f5dd5c2Smrg Alias for `--cache-file=config.cache'. 2676f5dd5c2Smrg 2686f5dd5c2Smrg`--quiet' 2696f5dd5c2Smrg`--silent' 2706f5dd5c2Smrg`-q' 2716f5dd5c2Smrg Do not print messages saying which checks are being made. To 2726f5dd5c2Smrg suppress all normal output, redirect it to `/dev/null' (any error 2736f5dd5c2Smrg messages will still be shown). 2746f5dd5c2Smrg 2756f5dd5c2Smrg`--srcdir=DIR' 2766f5dd5c2Smrg Look for the package's source code in directory DIR. Usually 2776f5dd5c2Smrg `configure' can determine that directory automatically. 2786f5dd5c2Smrg 2796f5dd5c2Smrg`--prefix=DIR' 2806f5dd5c2Smrg Use DIR as the installation prefix. *Note Installation Names:: 2816f5dd5c2Smrg for more details, including other options available for fine-tuning 2826f5dd5c2Smrg the installation locations. 2836f5dd5c2Smrg 2846f5dd5c2Smrg`--no-create' 2856f5dd5c2Smrg`-n' 2866f5dd5c2Smrg Run the configure checks, but stop before creating any output 2876f5dd5c2Smrg files. 2886f5dd5c2Smrg 2896f5dd5c2Smrg`configure' also accepts some other, not widely useful, options. Run 2906f5dd5c2Smrg`configure --help' for more details. 2916f5dd5c2Smrg 292