INSTALL revision 2d1d20fc
12d1d20fcSmrgInstallation Instructions 22d1d20fcSmrg************************* 32d1d20fcSmrg 42d1d20fcSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 52d1d20fcSmrg2006, 2007, 2008 Free Software Foundation, Inc. 62d1d20fcSmrg 72d1d20fcSmrg This file is free documentation; the Free Software Foundation gives 82d1d20fcSmrgunlimited permission to copy, distribute and modify it. 92d1d20fcSmrg 102d1d20fcSmrgBasic Installation 112d1d20fcSmrg================== 122d1d20fcSmrg 132d1d20fcSmrg Briefly, the shell commands `./configure; make; make install' should 142d1d20fcSmrgconfigure, build, and install this package. The following 152d1d20fcSmrgmore-detailed instructions are generic; see the `README' file for 162d1d20fcSmrginstructions specific to this package. 172d1d20fcSmrg 182d1d20fcSmrg The `configure' shell script attempts to guess correct values for 192d1d20fcSmrgvarious system-dependent variables used during compilation. It uses 202d1d20fcSmrgthose values to create a `Makefile' in each directory of the package. 212d1d20fcSmrgIt may also create one or more `.h' files containing system-dependent 222d1d20fcSmrgdefinitions. Finally, it creates a shell script `config.status' that 232d1d20fcSmrgyou can run in the future to recreate the current configuration, and a 242d1d20fcSmrgfile `config.log' containing compiler output (useful mainly for 252d1d20fcSmrgdebugging `configure'). 262d1d20fcSmrg 272d1d20fcSmrg It can also use an optional file (typically called `config.cache' 282d1d20fcSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 292d1d20fcSmrgthe results of its tests to speed up reconfiguring. Caching is 302d1d20fcSmrgdisabled by default to prevent problems with accidental use of stale 312d1d20fcSmrgcache files. 322d1d20fcSmrg 332d1d20fcSmrg If you need to do unusual things to compile the package, please try 342d1d20fcSmrgto figure out how `configure' could check whether to do them, and mail 352d1d20fcSmrgdiffs or instructions to the address given in the `README' so they can 362d1d20fcSmrgbe considered for the next release. If you are using the cache, and at 372d1d20fcSmrgsome point `config.cache' contains results you don't want to keep, you 382d1d20fcSmrgmay remove or edit it. 392d1d20fcSmrg 402d1d20fcSmrg The file `configure.ac' (or `configure.in') is used to create 412d1d20fcSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 422d1d20fcSmrgyou want to change it or regenerate `configure' using a newer version 432d1d20fcSmrgof `autoconf'. 442d1d20fcSmrg 452d1d20fcSmrgThe simplest way to compile this package is: 462d1d20fcSmrg 472d1d20fcSmrg 1. `cd' to the directory containing the package's source code and type 482d1d20fcSmrg `./configure' to configure the package for your system. 492d1d20fcSmrg 502d1d20fcSmrg Running `configure' might take a while. While running, it prints 512d1d20fcSmrg some messages telling which features it is checking for. 522d1d20fcSmrg 532d1d20fcSmrg 2. Type `make' to compile the package. 542d1d20fcSmrg 552d1d20fcSmrg 3. Optionally, type `make check' to run any self-tests that come with 562d1d20fcSmrg the package. 572d1d20fcSmrg 582d1d20fcSmrg 4. Type `make install' to install the programs and any data files and 592d1d20fcSmrg documentation. 602d1d20fcSmrg 612d1d20fcSmrg 5. You can remove the program binaries and object files from the 622d1d20fcSmrg source code directory by typing `make clean'. To also remove the 632d1d20fcSmrg files that `configure' created (so you can compile the package for 642d1d20fcSmrg a different kind of computer), type `make distclean'. There is 652d1d20fcSmrg also a `make maintainer-clean' target, but that is intended mainly 662d1d20fcSmrg for the package's developers. If you use it, you may have to get 672d1d20fcSmrg all sorts of other programs in order to regenerate files that came 682d1d20fcSmrg with the distribution. 692d1d20fcSmrg 702d1d20fcSmrg 6. Often, you can also type `make uninstall' to remove the installed 712d1d20fcSmrg files again. 722d1d20fcSmrg 732d1d20fcSmrgCompilers and Options 742d1d20fcSmrg===================== 752d1d20fcSmrg 762d1d20fcSmrg Some systems require unusual options for compilation or linking that 772d1d20fcSmrgthe `configure' script does not know about. Run `./configure --help' 782d1d20fcSmrgfor details on some of the pertinent environment variables. 792d1d20fcSmrg 802d1d20fcSmrg You can give `configure' initial values for configuration parameters 812d1d20fcSmrgby setting variables in the command line or in the environment. Here 822d1d20fcSmrgis an example: 832d1d20fcSmrg 842d1d20fcSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 852d1d20fcSmrg 862d1d20fcSmrg *Note Defining Variables::, for more details. 872d1d20fcSmrg 882d1d20fcSmrgCompiling For Multiple Architectures 892d1d20fcSmrg==================================== 902d1d20fcSmrg 912d1d20fcSmrg You can compile the package for more than one kind of computer at the 922d1d20fcSmrgsame time, by placing the object files for each architecture in their 932d1d20fcSmrgown directory. To do this, you can use GNU `make'. `cd' to the 942d1d20fcSmrgdirectory where you want the object files and executables to go and run 952d1d20fcSmrgthe `configure' script. `configure' automatically checks for the 962d1d20fcSmrgsource code in the directory that `configure' is in and in `..'. 972d1d20fcSmrg 982d1d20fcSmrg With a non-GNU `make', it is safer to compile the package for one 992d1d20fcSmrgarchitecture at a time in the source code directory. After you have 1002d1d20fcSmrginstalled the package for one architecture, use `make distclean' before 1012d1d20fcSmrgreconfiguring for another architecture. 1022d1d20fcSmrg 1032d1d20fcSmrg On MacOS X 10.5 and later systems, you can create libraries and 1042d1d20fcSmrgexecutables that work on multiple system types--known as "fat" or 1052d1d20fcSmrg"universal" binaries--by specifying multiple `-arch' options to the 1062d1d20fcSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1072d1d20fcSmrgthis: 1082d1d20fcSmrg 1092d1d20fcSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1102d1d20fcSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1112d1d20fcSmrg CPP="gcc -E" CXXCPP="g++ -E" 1122d1d20fcSmrg 1132d1d20fcSmrg This is not guaranteed to produce working output in all cases, you 1142d1d20fcSmrgmay have to build one architecture at a time and combine the results 1152d1d20fcSmrgusing the `lipo' tool if you have problems. 1162d1d20fcSmrg 1172d1d20fcSmrgInstallation Names 1182d1d20fcSmrg================== 1192d1d20fcSmrg 1202d1d20fcSmrg By default, `make install' installs the package's commands under 1212d1d20fcSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1222d1d20fcSmrgcan specify an installation prefix other than `/usr/local' by giving 1232d1d20fcSmrg`configure' the option `--prefix=PREFIX'. 1242d1d20fcSmrg 1252d1d20fcSmrg You can specify separate installation prefixes for 1262d1d20fcSmrgarchitecture-specific files and architecture-independent files. If you 1272d1d20fcSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1282d1d20fcSmrgPREFIX as the prefix for installing programs and libraries. 1292d1d20fcSmrgDocumentation and other data files still use the regular prefix. 1302d1d20fcSmrg 1312d1d20fcSmrg In addition, if you use an unusual directory layout you can give 1322d1d20fcSmrgoptions like `--bindir=DIR' to specify different values for particular 1332d1d20fcSmrgkinds of files. Run `configure --help' for a list of the directories 1342d1d20fcSmrgyou can set and what kinds of files go in them. 1352d1d20fcSmrg 1362d1d20fcSmrg If the package supports it, you can cause programs to be installed 1372d1d20fcSmrgwith an extra prefix or suffix on their names by giving `configure' the 1382d1d20fcSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1392d1d20fcSmrg 1402d1d20fcSmrgOptional Features 1412d1d20fcSmrg================= 1422d1d20fcSmrg 1432d1d20fcSmrg Some packages pay attention to `--enable-FEATURE' options to 1442d1d20fcSmrg`configure', where FEATURE indicates an optional part of the package. 1452d1d20fcSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1462d1d20fcSmrgis something like `gnu-as' or `x' (for the X Window System). The 1472d1d20fcSmrg`README' should mention any `--enable-' and `--with-' options that the 1482d1d20fcSmrgpackage recognizes. 1492d1d20fcSmrg 1502d1d20fcSmrg For packages that use the X Window System, `configure' can usually 1512d1d20fcSmrgfind the X include and library files automatically, but if it doesn't, 1522d1d20fcSmrgyou can use the `configure' options `--x-includes=DIR' and 1532d1d20fcSmrg`--x-libraries=DIR' to specify their locations. 1542d1d20fcSmrg 1552d1d20fcSmrgParticular systems 1562d1d20fcSmrg================== 1572d1d20fcSmrg 1582d1d20fcSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1592d1d20fcSmrgCC is not installed, it is recommended to use the following options in 1602d1d20fcSmrgorder to use an ANSI C compiler: 1612d1d20fcSmrg 1622d1d20fcSmrg ./configure CC="cc -Ae" 1632d1d20fcSmrg 1642d1d20fcSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1652d1d20fcSmrg 1662d1d20fcSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1672d1d20fcSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1682d1d20fcSmrga workaround. If GNU CC is not installed, it is therefore recommended 1692d1d20fcSmrgto try 1702d1d20fcSmrg 1712d1d20fcSmrg ./configure CC="cc" 1722d1d20fcSmrg 1732d1d20fcSmrgand if that doesn't work, try 1742d1d20fcSmrg 1752d1d20fcSmrg ./configure CC="cc -nodtk" 1762d1d20fcSmrg 1772d1d20fcSmrgSpecifying the System Type 1782d1d20fcSmrg========================== 1792d1d20fcSmrg 1802d1d20fcSmrg There may be some features `configure' cannot figure out 1812d1d20fcSmrgautomatically, but needs to determine by the type of machine the package 1822d1d20fcSmrgwill run on. Usually, assuming the package is built to be run on the 1832d1d20fcSmrg_same_ architectures, `configure' can figure that out, but if it prints 1842d1d20fcSmrga message saying it cannot guess the machine type, give it the 1852d1d20fcSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1862d1d20fcSmrgtype, such as `sun4', or a canonical name which has the form: 1872d1d20fcSmrg 1882d1d20fcSmrg CPU-COMPANY-SYSTEM 1892d1d20fcSmrg 1902d1d20fcSmrgwhere SYSTEM can have one of these forms: 1912d1d20fcSmrg 1922d1d20fcSmrg OS KERNEL-OS 1932d1d20fcSmrg 1942d1d20fcSmrg See the file `config.sub' for the possible values of each field. If 1952d1d20fcSmrg`config.sub' isn't included in this package, then this package doesn't 1962d1d20fcSmrgneed to know the machine type. 1972d1d20fcSmrg 1982d1d20fcSmrg If you are _building_ compiler tools for cross-compiling, you should 1992d1d20fcSmrguse the option `--target=TYPE' to select the type of system they will 2002d1d20fcSmrgproduce code for. 2012d1d20fcSmrg 2022d1d20fcSmrg If you want to _use_ a cross compiler, that generates code for a 2032d1d20fcSmrgplatform different from the build platform, you should specify the 2042d1d20fcSmrg"host" platform (i.e., that on which the generated programs will 2052d1d20fcSmrgeventually be run) with `--host=TYPE'. 2062d1d20fcSmrg 2072d1d20fcSmrgSharing Defaults 2082d1d20fcSmrg================ 2092d1d20fcSmrg 2102d1d20fcSmrg If you want to set default values for `configure' scripts to share, 2112d1d20fcSmrgyou can create a site shell script called `config.site' that gives 2122d1d20fcSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2132d1d20fcSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2142d1d20fcSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2152d1d20fcSmrg`CONFIG_SITE' environment variable to the location of the site script. 2162d1d20fcSmrgA warning: not all `configure' scripts look for a site script. 2172d1d20fcSmrg 2182d1d20fcSmrgDefining Variables 2192d1d20fcSmrg================== 2202d1d20fcSmrg 2212d1d20fcSmrg Variables not defined in a site shell script can be set in the 2222d1d20fcSmrgenvironment passed to `configure'. However, some packages may run 2232d1d20fcSmrgconfigure again during the build, and the customized values of these 2242d1d20fcSmrgvariables may be lost. In order to avoid this problem, you should set 2252d1d20fcSmrgthem in the `configure' command line, using `VAR=value'. For example: 2262d1d20fcSmrg 2272d1d20fcSmrg ./configure CC=/usr/local2/bin/gcc 2282d1d20fcSmrg 2292d1d20fcSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2302d1d20fcSmrgoverridden in the site shell script). 2312d1d20fcSmrg 2322d1d20fcSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2332d1d20fcSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2342d1d20fcSmrg 2352d1d20fcSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2362d1d20fcSmrg 2372d1d20fcSmrg`configure' Invocation 2382d1d20fcSmrg====================== 2392d1d20fcSmrg 2402d1d20fcSmrg `configure' recognizes the following options to control how it 2412d1d20fcSmrgoperates. 2422d1d20fcSmrg 2432d1d20fcSmrg`--help' 2442d1d20fcSmrg`-h' 2452d1d20fcSmrg Print a summary of all of the options to `configure', and exit. 2462d1d20fcSmrg 2472d1d20fcSmrg`--help=short' 2482d1d20fcSmrg`--help=recursive' 2492d1d20fcSmrg Print a summary of the options unique to this package's 2502d1d20fcSmrg `configure', and exit. The `short' variant lists options used 2512d1d20fcSmrg only in the top level, while the `recursive' variant lists options 2522d1d20fcSmrg also present in any nested packages. 2532d1d20fcSmrg 2542d1d20fcSmrg`--version' 2552d1d20fcSmrg`-V' 2562d1d20fcSmrg Print the version of Autoconf used to generate the `configure' 2572d1d20fcSmrg script, and exit. 2582d1d20fcSmrg 2592d1d20fcSmrg`--cache-file=FILE' 2602d1d20fcSmrg Enable the cache: use and save the results of the tests in FILE, 2612d1d20fcSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2622d1d20fcSmrg disable caching. 2632d1d20fcSmrg 2642d1d20fcSmrg`--config-cache' 2652d1d20fcSmrg`-C' 2662d1d20fcSmrg Alias for `--cache-file=config.cache'. 2672d1d20fcSmrg 2682d1d20fcSmrg`--quiet' 2692d1d20fcSmrg`--silent' 2702d1d20fcSmrg`-q' 2712d1d20fcSmrg Do not print messages saying which checks are being made. To 2722d1d20fcSmrg suppress all normal output, redirect it to `/dev/null' (any error 2732d1d20fcSmrg messages will still be shown). 2742d1d20fcSmrg 2752d1d20fcSmrg`--srcdir=DIR' 2762d1d20fcSmrg Look for the package's source code in directory DIR. Usually 2772d1d20fcSmrg `configure' can determine that directory automatically. 2782d1d20fcSmrg 2792d1d20fcSmrg`--prefix=DIR' 2802d1d20fcSmrg Use DIR as the installation prefix. *Note Installation Names:: 2812d1d20fcSmrg for more details, including other options available for fine-tuning 2822d1d20fcSmrg the installation locations. 2832d1d20fcSmrg 2842d1d20fcSmrg`--no-create' 2852d1d20fcSmrg`-n' 2862d1d20fcSmrg Run the configure checks, but stop before creating any output 2872d1d20fcSmrg files. 2882d1d20fcSmrg 2892d1d20fcSmrg`configure' also accepts some other, not widely useful, options. Run 2902d1d20fcSmrg`configure --help' for more details. 2912d1d20fcSmrg 292