INSTALL revision 11a29bac
111a29bacSmrgInstallation Instructions 211a29bacSmrg************************* 311a29bacSmrg 411a29bacSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 511a29bacSmrg2006, 2007, 2008 Free Software Foundation, Inc. 611a29bacSmrg 711a29bacSmrg This file is free documentation; the Free Software Foundation gives 811a29bacSmrgunlimited permission to copy, distribute and modify it. 911a29bacSmrg 1011a29bacSmrgBasic Installation 1111a29bacSmrg================== 1211a29bacSmrg 1311a29bacSmrg Briefly, the shell commands `./configure; make; make install' should 1411a29bacSmrgconfigure, build, and install this package. The following 1511a29bacSmrgmore-detailed instructions are generic; see the `README' file for 1611a29bacSmrginstructions specific to this package. 1711a29bacSmrg 1811a29bacSmrg The `configure' shell script attempts to guess correct values for 1911a29bacSmrgvarious system-dependent variables used during compilation. It uses 2011a29bacSmrgthose values to create a `Makefile' in each directory of the package. 2111a29bacSmrgIt may also create one or more `.h' files containing system-dependent 2211a29bacSmrgdefinitions. Finally, it creates a shell script `config.status' that 2311a29bacSmrgyou can run in the future to recreate the current configuration, and a 2411a29bacSmrgfile `config.log' containing compiler output (useful mainly for 2511a29bacSmrgdebugging `configure'). 2611a29bacSmrg 2711a29bacSmrg It can also use an optional file (typically called `config.cache' 2811a29bacSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2911a29bacSmrgthe results of its tests to speed up reconfiguring. Caching is 3011a29bacSmrgdisabled by default to prevent problems with accidental use of stale 3111a29bacSmrgcache files. 3211a29bacSmrg 3311a29bacSmrg If you need to do unusual things to compile the package, please try 3411a29bacSmrgto figure out how `configure' could check whether to do them, and mail 3511a29bacSmrgdiffs or instructions to the address given in the `README' so they can 3611a29bacSmrgbe considered for the next release. If you are using the cache, and at 3711a29bacSmrgsome point `config.cache' contains results you don't want to keep, you 3811a29bacSmrgmay remove or edit it. 3911a29bacSmrg 4011a29bacSmrg The file `configure.ac' (or `configure.in') is used to create 4111a29bacSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4211a29bacSmrgyou want to change it or regenerate `configure' using a newer version 4311a29bacSmrgof `autoconf'. 4411a29bacSmrg 4511a29bacSmrgThe simplest way to compile this package is: 4611a29bacSmrg 4711a29bacSmrg 1. `cd' to the directory containing the package's source code and type 4811a29bacSmrg `./configure' to configure the package for your system. 4911a29bacSmrg 5011a29bacSmrg Running `configure' might take a while. While running, it prints 5111a29bacSmrg some messages telling which features it is checking for. 5211a29bacSmrg 5311a29bacSmrg 2. Type `make' to compile the package. 5411a29bacSmrg 5511a29bacSmrg 3. Optionally, type `make check' to run any self-tests that come with 5611a29bacSmrg the package. 5711a29bacSmrg 5811a29bacSmrg 4. Type `make install' to install the programs and any data files and 5911a29bacSmrg documentation. 6011a29bacSmrg 6111a29bacSmrg 5. You can remove the program binaries and object files from the 6211a29bacSmrg source code directory by typing `make clean'. To also remove the 6311a29bacSmrg files that `configure' created (so you can compile the package for 6411a29bacSmrg a different kind of computer), type `make distclean'. There is 6511a29bacSmrg also a `make maintainer-clean' target, but that is intended mainly 6611a29bacSmrg for the package's developers. If you use it, you may have to get 6711a29bacSmrg all sorts of other programs in order to regenerate files that came 6811a29bacSmrg with the distribution. 6911a29bacSmrg 7011a29bacSmrg 6. Often, you can also type `make uninstall' to remove the installed 7111a29bacSmrg files again. 7211a29bacSmrg 7311a29bacSmrgCompilers and Options 7411a29bacSmrg===================== 7511a29bacSmrg 7611a29bacSmrg Some systems require unusual options for compilation or linking that 7711a29bacSmrgthe `configure' script does not know about. Run `./configure --help' 7811a29bacSmrgfor details on some of the pertinent environment variables. 7911a29bacSmrg 8011a29bacSmrg You can give `configure' initial values for configuration parameters 8111a29bacSmrgby setting variables in the command line or in the environment. Here 8211a29bacSmrgis an example: 8311a29bacSmrg 8411a29bacSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8511a29bacSmrg 8611a29bacSmrg *Note Defining Variables::, for more details. 8711a29bacSmrg 8811a29bacSmrgCompiling For Multiple Architectures 8911a29bacSmrg==================================== 9011a29bacSmrg 9111a29bacSmrg You can compile the package for more than one kind of computer at the 9211a29bacSmrgsame time, by placing the object files for each architecture in their 9311a29bacSmrgown directory. To do this, you can use GNU `make'. `cd' to the 9411a29bacSmrgdirectory where you want the object files and executables to go and run 9511a29bacSmrgthe `configure' script. `configure' automatically checks for the 9611a29bacSmrgsource code in the directory that `configure' is in and in `..'. 9711a29bacSmrg 9811a29bacSmrg With a non-GNU `make', it is safer to compile the package for one 9911a29bacSmrgarchitecture at a time in the source code directory. After you have 10011a29bacSmrginstalled the package for one architecture, use `make distclean' before 10111a29bacSmrgreconfiguring for another architecture. 10211a29bacSmrg 10311a29bacSmrg On MacOS X 10.5 and later systems, you can create libraries and 10411a29bacSmrgexecutables that work on multiple system types--known as "fat" or 10511a29bacSmrg"universal" binaries--by specifying multiple `-arch' options to the 10611a29bacSmrgcompiler but only a single `-arch' option to the preprocessor. Like 10711a29bacSmrgthis: 10811a29bacSmrg 10911a29bacSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11011a29bacSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11111a29bacSmrg CPP="gcc -E" CXXCPP="g++ -E" 11211a29bacSmrg 11311a29bacSmrg This is not guaranteed to produce working output in all cases, you 11411a29bacSmrgmay have to build one architecture at a time and combine the results 11511a29bacSmrgusing the `lipo' tool if you have problems. 11611a29bacSmrg 11711a29bacSmrgInstallation Names 11811a29bacSmrg================== 11911a29bacSmrg 12011a29bacSmrg By default, `make install' installs the package's commands under 12111a29bacSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12211a29bacSmrgcan specify an installation prefix other than `/usr/local' by giving 12311a29bacSmrg`configure' the option `--prefix=PREFIX'. 12411a29bacSmrg 12511a29bacSmrg You can specify separate installation prefixes for 12611a29bacSmrgarchitecture-specific files and architecture-independent files. If you 12711a29bacSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12811a29bacSmrgPREFIX as the prefix for installing programs and libraries. 12911a29bacSmrgDocumentation and other data files still use the regular prefix. 13011a29bacSmrg 13111a29bacSmrg In addition, if you use an unusual directory layout you can give 13211a29bacSmrgoptions like `--bindir=DIR' to specify different values for particular 13311a29bacSmrgkinds of files. Run `configure --help' for a list of the directories 13411a29bacSmrgyou can set and what kinds of files go in them. 13511a29bacSmrg 13611a29bacSmrg If the package supports it, you can cause programs to be installed 13711a29bacSmrgwith an extra prefix or suffix on their names by giving `configure' the 13811a29bacSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13911a29bacSmrg 14011a29bacSmrgOptional Features 14111a29bacSmrg================= 14211a29bacSmrg 14311a29bacSmrg Some packages pay attention to `--enable-FEATURE' options to 14411a29bacSmrg`configure', where FEATURE indicates an optional part of the package. 14511a29bacSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14611a29bacSmrgis something like `gnu-as' or `x' (for the X Window System). The 14711a29bacSmrg`README' should mention any `--enable-' and `--with-' options that the 14811a29bacSmrgpackage recognizes. 14911a29bacSmrg 15011a29bacSmrg For packages that use the X Window System, `configure' can usually 15111a29bacSmrgfind the X include and library files automatically, but if it doesn't, 15211a29bacSmrgyou can use the `configure' options `--x-includes=DIR' and 15311a29bacSmrg`--x-libraries=DIR' to specify their locations. 15411a29bacSmrg 15511a29bacSmrgParticular systems 15611a29bacSmrg================== 15711a29bacSmrg 15811a29bacSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15911a29bacSmrgCC is not installed, it is recommended to use the following options in 16011a29bacSmrgorder to use an ANSI C compiler: 16111a29bacSmrg 16211a29bacSmrg ./configure CC="cc -Ae" 16311a29bacSmrg 16411a29bacSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16511a29bacSmrg 16611a29bacSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16711a29bacSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16811a29bacSmrga workaround. If GNU CC is not installed, it is therefore recommended 16911a29bacSmrgto try 17011a29bacSmrg 17111a29bacSmrg ./configure CC="cc" 17211a29bacSmrg 17311a29bacSmrgand if that doesn't work, try 17411a29bacSmrg 17511a29bacSmrg ./configure CC="cc -nodtk" 17611a29bacSmrg 17711a29bacSmrgSpecifying the System Type 17811a29bacSmrg========================== 17911a29bacSmrg 18011a29bacSmrg There may be some features `configure' cannot figure out 18111a29bacSmrgautomatically, but needs to determine by the type of machine the package 18211a29bacSmrgwill run on. Usually, assuming the package is built to be run on the 18311a29bacSmrg_same_ architectures, `configure' can figure that out, but if it prints 18411a29bacSmrga message saying it cannot guess the machine type, give it the 18511a29bacSmrg`--build=TYPE' option. TYPE can either be a short name for the system 18611a29bacSmrgtype, such as `sun4', or a canonical name which has the form: 18711a29bacSmrg 18811a29bacSmrg CPU-COMPANY-SYSTEM 18911a29bacSmrg 19011a29bacSmrgwhere SYSTEM can have one of these forms: 19111a29bacSmrg 19211a29bacSmrg OS KERNEL-OS 19311a29bacSmrg 19411a29bacSmrg See the file `config.sub' for the possible values of each field. If 19511a29bacSmrg`config.sub' isn't included in this package, then this package doesn't 19611a29bacSmrgneed to know the machine type. 19711a29bacSmrg 19811a29bacSmrg If you are _building_ compiler tools for cross-compiling, you should 19911a29bacSmrguse the option `--target=TYPE' to select the type of system they will 20011a29bacSmrgproduce code for. 20111a29bacSmrg 20211a29bacSmrg If you want to _use_ a cross compiler, that generates code for a 20311a29bacSmrgplatform different from the build platform, you should specify the 20411a29bacSmrg"host" platform (i.e., that on which the generated programs will 20511a29bacSmrgeventually be run) with `--host=TYPE'. 20611a29bacSmrg 20711a29bacSmrgSharing Defaults 20811a29bacSmrg================ 20911a29bacSmrg 21011a29bacSmrg If you want to set default values for `configure' scripts to share, 21111a29bacSmrgyou can create a site shell script called `config.site' that gives 21211a29bacSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 21311a29bacSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21411a29bacSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21511a29bacSmrg`CONFIG_SITE' environment variable to the location of the site script. 21611a29bacSmrgA warning: not all `configure' scripts look for a site script. 21711a29bacSmrg 21811a29bacSmrgDefining Variables 21911a29bacSmrg================== 22011a29bacSmrg 22111a29bacSmrg Variables not defined in a site shell script can be set in the 22211a29bacSmrgenvironment passed to `configure'. However, some packages may run 22311a29bacSmrgconfigure again during the build, and the customized values of these 22411a29bacSmrgvariables may be lost. In order to avoid this problem, you should set 22511a29bacSmrgthem in the `configure' command line, using `VAR=value'. For example: 22611a29bacSmrg 22711a29bacSmrg ./configure CC=/usr/local2/bin/gcc 22811a29bacSmrg 22911a29bacSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 23011a29bacSmrgoverridden in the site shell script). 23111a29bacSmrg 23211a29bacSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23311a29bacSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23411a29bacSmrg 23511a29bacSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23611a29bacSmrg 23711a29bacSmrg`configure' Invocation 23811a29bacSmrg====================== 23911a29bacSmrg 24011a29bacSmrg `configure' recognizes the following options to control how it 24111a29bacSmrgoperates. 24211a29bacSmrg 24311a29bacSmrg`--help' 24411a29bacSmrg`-h' 24511a29bacSmrg Print a summary of all of the options to `configure', and exit. 24611a29bacSmrg 24711a29bacSmrg`--help=short' 24811a29bacSmrg`--help=recursive' 24911a29bacSmrg Print a summary of the options unique to this package's 25011a29bacSmrg `configure', and exit. The `short' variant lists options used 25111a29bacSmrg only in the top level, while the `recursive' variant lists options 25211a29bacSmrg also present in any nested packages. 25311a29bacSmrg 25411a29bacSmrg`--version' 25511a29bacSmrg`-V' 25611a29bacSmrg Print the version of Autoconf used to generate the `configure' 25711a29bacSmrg script, and exit. 25811a29bacSmrg 25911a29bacSmrg`--cache-file=FILE' 26011a29bacSmrg Enable the cache: use and save the results of the tests in FILE, 26111a29bacSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26211a29bacSmrg disable caching. 26311a29bacSmrg 26411a29bacSmrg`--config-cache' 26511a29bacSmrg`-C' 26611a29bacSmrg Alias for `--cache-file=config.cache'. 26711a29bacSmrg 26811a29bacSmrg`--quiet' 26911a29bacSmrg`--silent' 27011a29bacSmrg`-q' 27111a29bacSmrg Do not print messages saying which checks are being made. To 27211a29bacSmrg suppress all normal output, redirect it to `/dev/null' (any error 27311a29bacSmrg messages will still be shown). 27411a29bacSmrg 27511a29bacSmrg`--srcdir=DIR' 27611a29bacSmrg Look for the package's source code in directory DIR. Usually 27711a29bacSmrg `configure' can determine that directory automatically. 27811a29bacSmrg 27911a29bacSmrg`--prefix=DIR' 28011a29bacSmrg Use DIR as the installation prefix. *Note Installation Names:: 28111a29bacSmrg for more details, including other options available for fine-tuning 28211a29bacSmrg the installation locations. 28311a29bacSmrg 28411a29bacSmrg`--no-create' 28511a29bacSmrg`-n' 28611a29bacSmrg Run the configure checks, but stop before creating any output 28711a29bacSmrg files. 28811a29bacSmrg 28911a29bacSmrg`configure' also accepts some other, not widely useful, options. Run 29011a29bacSmrg`configure --help' for more details. 29111a29bacSmrg 292