INSTALL revision 5f5b92ff
15f5b92ffSmrgInstallation Instructions 25f5b92ffSmrg************************* 35f5b92ffSmrg 45f5b92ffSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 55f5b92ffSmrg2006, 2007, 2008 Free Software Foundation, Inc. 65f5b92ffSmrg 75f5b92ffSmrg This file is free documentation; the Free Software Foundation gives 85f5b92ffSmrgunlimited permission to copy, distribute and modify it. 95f5b92ffSmrg 105f5b92ffSmrgBasic Installation 115f5b92ffSmrg================== 125f5b92ffSmrg 135f5b92ffSmrg Briefly, the shell commands `./configure; make; make install' should 145f5b92ffSmrgconfigure, build, and install this package. The following 155f5b92ffSmrgmore-detailed instructions are generic; see the `README' file for 165f5b92ffSmrginstructions specific to this package. 175f5b92ffSmrg 185f5b92ffSmrg The `configure' shell script attempts to guess correct values for 195f5b92ffSmrgvarious system-dependent variables used during compilation. It uses 205f5b92ffSmrgthose values to create a `Makefile' in each directory of the package. 215f5b92ffSmrgIt may also create one or more `.h' files containing system-dependent 225f5b92ffSmrgdefinitions. Finally, it creates a shell script `config.status' that 235f5b92ffSmrgyou can run in the future to recreate the current configuration, and a 245f5b92ffSmrgfile `config.log' containing compiler output (useful mainly for 255f5b92ffSmrgdebugging `configure'). 265f5b92ffSmrg 275f5b92ffSmrg It can also use an optional file (typically called `config.cache' 285f5b92ffSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 295f5b92ffSmrgthe results of its tests to speed up reconfiguring. Caching is 305f5b92ffSmrgdisabled by default to prevent problems with accidental use of stale 315f5b92ffSmrgcache files. 325f5b92ffSmrg 335f5b92ffSmrg If you need to do unusual things to compile the package, please try 345f5b92ffSmrgto figure out how `configure' could check whether to do them, and mail 355f5b92ffSmrgdiffs or instructions to the address given in the `README' so they can 365f5b92ffSmrgbe considered for the next release. If you are using the cache, and at 375f5b92ffSmrgsome point `config.cache' contains results you don't want to keep, you 385f5b92ffSmrgmay remove or edit it. 395f5b92ffSmrg 405f5b92ffSmrg The file `configure.ac' (or `configure.in') is used to create 415f5b92ffSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 425f5b92ffSmrgyou want to change it or regenerate `configure' using a newer version 435f5b92ffSmrgof `autoconf'. 445f5b92ffSmrg 455f5b92ffSmrgThe simplest way to compile this package is: 465f5b92ffSmrg 475f5b92ffSmrg 1. `cd' to the directory containing the package's source code and type 485f5b92ffSmrg `./configure' to configure the package for your system. 495f5b92ffSmrg 505f5b92ffSmrg Running `configure' might take a while. While running, it prints 515f5b92ffSmrg some messages telling which features it is checking for. 525f5b92ffSmrg 535f5b92ffSmrg 2. Type `make' to compile the package. 545f5b92ffSmrg 555f5b92ffSmrg 3. Optionally, type `make check' to run any self-tests that come with 565f5b92ffSmrg the package. 575f5b92ffSmrg 585f5b92ffSmrg 4. Type `make install' to install the programs and any data files and 595f5b92ffSmrg documentation. 605f5b92ffSmrg 615f5b92ffSmrg 5. You can remove the program binaries and object files from the 625f5b92ffSmrg source code directory by typing `make clean'. To also remove the 635f5b92ffSmrg files that `configure' created (so you can compile the package for 645f5b92ffSmrg a different kind of computer), type `make distclean'. There is 655f5b92ffSmrg also a `make maintainer-clean' target, but that is intended mainly 665f5b92ffSmrg for the package's developers. If you use it, you may have to get 675f5b92ffSmrg all sorts of other programs in order to regenerate files that came 685f5b92ffSmrg with the distribution. 695f5b92ffSmrg 705f5b92ffSmrg 6. Often, you can also type `make uninstall' to remove the installed 715f5b92ffSmrg files again. 725f5b92ffSmrg 735f5b92ffSmrgCompilers and Options 745f5b92ffSmrg===================== 755f5b92ffSmrg 765f5b92ffSmrg Some systems require unusual options for compilation or linking that 775f5b92ffSmrgthe `configure' script does not know about. Run `./configure --help' 785f5b92ffSmrgfor details on some of the pertinent environment variables. 795f5b92ffSmrg 805f5b92ffSmrg You can give `configure' initial values for configuration parameters 815f5b92ffSmrgby setting variables in the command line or in the environment. Here 825f5b92ffSmrgis an example: 835f5b92ffSmrg 845f5b92ffSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 855f5b92ffSmrg 865f5b92ffSmrg *Note Defining Variables::, for more details. 875f5b92ffSmrg 885f5b92ffSmrgCompiling For Multiple Architectures 895f5b92ffSmrg==================================== 905f5b92ffSmrg 915f5b92ffSmrg You can compile the package for more than one kind of computer at the 925f5b92ffSmrgsame time, by placing the object files for each architecture in their 935f5b92ffSmrgown directory. To do this, you can use GNU `make'. `cd' to the 945f5b92ffSmrgdirectory where you want the object files and executables to go and run 955f5b92ffSmrgthe `configure' script. `configure' automatically checks for the 965f5b92ffSmrgsource code in the directory that `configure' is in and in `..'. 975f5b92ffSmrg 985f5b92ffSmrg With a non-GNU `make', it is safer to compile the package for one 995f5b92ffSmrgarchitecture at a time in the source code directory. After you have 1005f5b92ffSmrginstalled the package for one architecture, use `make distclean' before 1015f5b92ffSmrgreconfiguring for another architecture. 1025f5b92ffSmrg 1035f5b92ffSmrg On MacOS X 10.5 and later systems, you can create libraries and 1045f5b92ffSmrgexecutables that work on multiple system types--known as "fat" or 1055f5b92ffSmrg"universal" binaries--by specifying multiple `-arch' options to the 1065f5b92ffSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1075f5b92ffSmrgthis: 1085f5b92ffSmrg 1095f5b92ffSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1105f5b92ffSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1115f5b92ffSmrg CPP="gcc -E" CXXCPP="g++ -E" 1125f5b92ffSmrg 1135f5b92ffSmrg This is not guaranteed to produce working output in all cases, you 1145f5b92ffSmrgmay have to build one architecture at a time and combine the results 1155f5b92ffSmrgusing the `lipo' tool if you have problems. 1165f5b92ffSmrg 1175f5b92ffSmrgInstallation Names 1185f5b92ffSmrg================== 1195f5b92ffSmrg 1205f5b92ffSmrg By default, `make install' installs the package's commands under 1215f5b92ffSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1225f5b92ffSmrgcan specify an installation prefix other than `/usr/local' by giving 1235f5b92ffSmrg`configure' the option `--prefix=PREFIX'. 1245f5b92ffSmrg 1255f5b92ffSmrg You can specify separate installation prefixes for 1265f5b92ffSmrgarchitecture-specific files and architecture-independent files. If you 1275f5b92ffSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1285f5b92ffSmrgPREFIX as the prefix for installing programs and libraries. 1295f5b92ffSmrgDocumentation and other data files still use the regular prefix. 1305f5b92ffSmrg 1315f5b92ffSmrg In addition, if you use an unusual directory layout you can give 1325f5b92ffSmrgoptions like `--bindir=DIR' to specify different values for particular 1335f5b92ffSmrgkinds of files. Run `configure --help' for a list of the directories 1345f5b92ffSmrgyou can set and what kinds of files go in them. 1355f5b92ffSmrg 1365f5b92ffSmrg If the package supports it, you can cause programs to be installed 1375f5b92ffSmrgwith an extra prefix or suffix on their names by giving `configure' the 1385f5b92ffSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1395f5b92ffSmrg 1405f5b92ffSmrgOptional Features 1415f5b92ffSmrg================= 1425f5b92ffSmrg 1435f5b92ffSmrg Some packages pay attention to `--enable-FEATURE' options to 1445f5b92ffSmrg`configure', where FEATURE indicates an optional part of the package. 1455f5b92ffSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 1465f5b92ffSmrgis something like `gnu-as' or `x' (for the X Window System). The 1475f5b92ffSmrg`README' should mention any `--enable-' and `--with-' options that the 1485f5b92ffSmrgpackage recognizes. 1495f5b92ffSmrg 1505f5b92ffSmrg For packages that use the X Window System, `configure' can usually 1515f5b92ffSmrgfind the X include and library files automatically, but if it doesn't, 1525f5b92ffSmrgyou can use the `configure' options `--x-includes=DIR' and 1535f5b92ffSmrg`--x-libraries=DIR' to specify their locations. 1545f5b92ffSmrg 1555f5b92ffSmrgParticular systems 1565f5b92ffSmrg================== 1575f5b92ffSmrg 1585f5b92ffSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 1595f5b92ffSmrgCC is not installed, it is recommended to use the following options in 1605f5b92ffSmrgorder to use an ANSI C compiler: 1615f5b92ffSmrg 1625f5b92ffSmrg ./configure CC="cc -Ae" 1635f5b92ffSmrg 1645f5b92ffSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 1655f5b92ffSmrg 1665f5b92ffSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 1675f5b92ffSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 1685f5b92ffSmrga workaround. If GNU CC is not installed, it is therefore recommended 1695f5b92ffSmrgto try 1705f5b92ffSmrg 1715f5b92ffSmrg ./configure CC="cc" 1725f5b92ffSmrg 1735f5b92ffSmrgand if that doesn't work, try 1745f5b92ffSmrg 1755f5b92ffSmrg ./configure CC="cc -nodtk" 1765f5b92ffSmrg 1775f5b92ffSmrgSpecifying the System Type 1785f5b92ffSmrg========================== 1795f5b92ffSmrg 1805f5b92ffSmrg There may be some features `configure' cannot figure out 1815f5b92ffSmrgautomatically, but needs to determine by the type of machine the package 1825f5b92ffSmrgwill run on. Usually, assuming the package is built to be run on the 1835f5b92ffSmrg_same_ architectures, `configure' can figure that out, but if it prints 1845f5b92ffSmrga message saying it cannot guess the machine type, give it the 1855f5b92ffSmrg`--build=TYPE' option. TYPE can either be a short name for the system 1865f5b92ffSmrgtype, such as `sun4', or a canonical name which has the form: 1875f5b92ffSmrg 1885f5b92ffSmrg CPU-COMPANY-SYSTEM 1895f5b92ffSmrg 1905f5b92ffSmrgwhere SYSTEM can have one of these forms: 1915f5b92ffSmrg 1925f5b92ffSmrg OS KERNEL-OS 1935f5b92ffSmrg 1945f5b92ffSmrg See the file `config.sub' for the possible values of each field. If 1955f5b92ffSmrg`config.sub' isn't included in this package, then this package doesn't 1965f5b92ffSmrgneed to know the machine type. 1975f5b92ffSmrg 1985f5b92ffSmrg If you are _building_ compiler tools for cross-compiling, you should 1995f5b92ffSmrguse the option `--target=TYPE' to select the type of system they will 2005f5b92ffSmrgproduce code for. 2015f5b92ffSmrg 2025f5b92ffSmrg If you want to _use_ a cross compiler, that generates code for a 2035f5b92ffSmrgplatform different from the build platform, you should specify the 2045f5b92ffSmrg"host" platform (i.e., that on which the generated programs will 2055f5b92ffSmrgeventually be run) with `--host=TYPE'. 2065f5b92ffSmrg 2075f5b92ffSmrgSharing Defaults 2085f5b92ffSmrg================ 2095f5b92ffSmrg 2105f5b92ffSmrg If you want to set default values for `configure' scripts to share, 2115f5b92ffSmrgyou can create a site shell script called `config.site' that gives 2125f5b92ffSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2135f5b92ffSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2145f5b92ffSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2155f5b92ffSmrg`CONFIG_SITE' environment variable to the location of the site script. 2165f5b92ffSmrgA warning: not all `configure' scripts look for a site script. 2175f5b92ffSmrg 2185f5b92ffSmrgDefining Variables 2195f5b92ffSmrg================== 2205f5b92ffSmrg 2215f5b92ffSmrg Variables not defined in a site shell script can be set in the 2225f5b92ffSmrgenvironment passed to `configure'. However, some packages may run 2235f5b92ffSmrgconfigure again during the build, and the customized values of these 2245f5b92ffSmrgvariables may be lost. In order to avoid this problem, you should set 2255f5b92ffSmrgthem in the `configure' command line, using `VAR=value'. For example: 2265f5b92ffSmrg 2275f5b92ffSmrg ./configure CC=/usr/local2/bin/gcc 2285f5b92ffSmrg 2295f5b92ffSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 2305f5b92ffSmrgoverridden in the site shell script). 2315f5b92ffSmrg 2325f5b92ffSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 2335f5b92ffSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 2345f5b92ffSmrg 2355f5b92ffSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 2365f5b92ffSmrg 2375f5b92ffSmrg`configure' Invocation 2385f5b92ffSmrg====================== 2395f5b92ffSmrg 2405f5b92ffSmrg `configure' recognizes the following options to control how it 2415f5b92ffSmrgoperates. 2425f5b92ffSmrg 2435f5b92ffSmrg`--help' 2445f5b92ffSmrg`-h' 2455f5b92ffSmrg Print a summary of all of the options to `configure', and exit. 2465f5b92ffSmrg 2475f5b92ffSmrg`--help=short' 2485f5b92ffSmrg`--help=recursive' 2495f5b92ffSmrg Print a summary of the options unique to this package's 2505f5b92ffSmrg `configure', and exit. The `short' variant lists options used 2515f5b92ffSmrg only in the top level, while the `recursive' variant lists options 2525f5b92ffSmrg also present in any nested packages. 2535f5b92ffSmrg 2545f5b92ffSmrg`--version' 2555f5b92ffSmrg`-V' 2565f5b92ffSmrg Print the version of Autoconf used to generate the `configure' 2575f5b92ffSmrg script, and exit. 2585f5b92ffSmrg 2595f5b92ffSmrg`--cache-file=FILE' 2605f5b92ffSmrg Enable the cache: use and save the results of the tests in FILE, 2615f5b92ffSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 2625f5b92ffSmrg disable caching. 2635f5b92ffSmrg 2645f5b92ffSmrg`--config-cache' 2655f5b92ffSmrg`-C' 2665f5b92ffSmrg Alias for `--cache-file=config.cache'. 2675f5b92ffSmrg 2685f5b92ffSmrg`--quiet' 2695f5b92ffSmrg`--silent' 2705f5b92ffSmrg`-q' 2715f5b92ffSmrg Do not print messages saying which checks are being made. To 2725f5b92ffSmrg suppress all normal output, redirect it to `/dev/null' (any error 2735f5b92ffSmrg messages will still be shown). 2745f5b92ffSmrg 2755f5b92ffSmrg`--srcdir=DIR' 2765f5b92ffSmrg Look for the package's source code in directory DIR. Usually 2775f5b92ffSmrg `configure' can determine that directory automatically. 2785f5b92ffSmrg 2795f5b92ffSmrg`--prefix=DIR' 2805f5b92ffSmrg Use DIR as the installation prefix. *Note Installation Names:: 2815f5b92ffSmrg for more details, including other options available for fine-tuning 2825f5b92ffSmrg the installation locations. 2835f5b92ffSmrg 2845f5b92ffSmrg`--no-create' 2855f5b92ffSmrg`-n' 2865f5b92ffSmrg Run the configure checks, but stop before creating any output 2875f5b92ffSmrg files. 2885f5b92ffSmrg 2895f5b92ffSmrg`configure' also accepts some other, not widely useful, options. Run 2905f5b92ffSmrg`configure --help' for more details. 2915f5b92ffSmrg 292