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