INSTALL revision 23a8d56d
123a8d56dSmrgInstallation Instructions 223a8d56dSmrg************************* 323a8d56dSmrg 423a8d56dSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 523a8d56dSmrg2006, 2007, 2008 Free Software Foundation, Inc. 623a8d56dSmrg 723a8d56dSmrg This file is free documentation; the Free Software Foundation gives 823a8d56dSmrgunlimited permission to copy, distribute and modify it. 923a8d56dSmrg 1023a8d56dSmrgBasic Installation 1123a8d56dSmrg================== 1223a8d56dSmrg 1323a8d56dSmrg Briefly, the shell commands `./configure; make; make install' should 1423a8d56dSmrgconfigure, build, and install this package. The following 1523a8d56dSmrgmore-detailed instructions are generic; see the `README' file for 1623a8d56dSmrginstructions specific to this package. 1723a8d56dSmrg 1823a8d56dSmrg The `configure' shell script attempts to guess correct values for 1923a8d56dSmrgvarious system-dependent variables used during compilation. It uses 2023a8d56dSmrgthose values to create a `Makefile' in each directory of the package. 2123a8d56dSmrgIt may also create one or more `.h' files containing system-dependent 2223a8d56dSmrgdefinitions. Finally, it creates a shell script `config.status' that 2323a8d56dSmrgyou can run in the future to recreate the current configuration, and a 2423a8d56dSmrgfile `config.log' containing compiler output (useful mainly for 2523a8d56dSmrgdebugging `configure'). 2623a8d56dSmrg 2723a8d56dSmrg It can also use an optional file (typically called `config.cache' 2823a8d56dSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2923a8d56dSmrgthe results of its tests to speed up reconfiguring. Caching is 3023a8d56dSmrgdisabled by default to prevent problems with accidental use of stale 3123a8d56dSmrgcache files. 3223a8d56dSmrg 3323a8d56dSmrg If you need to do unusual things to compile the package, please try 3423a8d56dSmrgto figure out how `configure' could check whether to do them, and mail 3523a8d56dSmrgdiffs or instructions to the address given in the `README' so they can 3623a8d56dSmrgbe considered for the next release. If you are using the cache, and at 3723a8d56dSmrgsome point `config.cache' contains results you don't want to keep, you 3823a8d56dSmrgmay remove or edit it. 3923a8d56dSmrg 4023a8d56dSmrg The file `configure.ac' (or `configure.in') is used to create 4123a8d56dSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4223a8d56dSmrgyou want to change it or regenerate `configure' using a newer version 4323a8d56dSmrgof `autoconf'. 4423a8d56dSmrg 4523a8d56dSmrgThe simplest way to compile this package is: 4623a8d56dSmrg 4723a8d56dSmrg 1. `cd' to the directory containing the package's source code and type 4823a8d56dSmrg `./configure' to configure the package for your system. 4923a8d56dSmrg 5023a8d56dSmrg Running `configure' might take a while. While running, it prints 5123a8d56dSmrg some messages telling which features it is checking for. 5223a8d56dSmrg 5323a8d56dSmrg 2. Type `make' to compile the package. 5423a8d56dSmrg 5523a8d56dSmrg 3. Optionally, type `make check' to run any self-tests that come with 5623a8d56dSmrg the package. 5723a8d56dSmrg 5823a8d56dSmrg 4. Type `make install' to install the programs and any data files and 5923a8d56dSmrg documentation. 6023a8d56dSmrg 6123a8d56dSmrg 5. You can remove the program binaries and object files from the 6223a8d56dSmrg source code directory by typing `make clean'. To also remove the 6323a8d56dSmrg files that `configure' created (so you can compile the package for 6423a8d56dSmrg a different kind of computer), type `make distclean'. There is 6523a8d56dSmrg also a `make maintainer-clean' target, but that is intended mainly 6623a8d56dSmrg for the package's developers. If you use it, you may have to get 6723a8d56dSmrg all sorts of other programs in order to regenerate files that came 6823a8d56dSmrg with the distribution. 6923a8d56dSmrg 7023a8d56dSmrg 6. Often, you can also type `make uninstall' to remove the installed 7123a8d56dSmrg files again. 7223a8d56dSmrg 7323a8d56dSmrgCompilers and Options 7423a8d56dSmrg===================== 7523a8d56dSmrg 7623a8d56dSmrg Some systems require unusual options for compilation or linking that 7723a8d56dSmrgthe `configure' script does not know about. Run `./configure --help' 7823a8d56dSmrgfor details on some of the pertinent environment variables. 7923a8d56dSmrg 8023a8d56dSmrg You can give `configure' initial values for configuration parameters 8123a8d56dSmrgby setting variables in the command line or in the environment. Here 8223a8d56dSmrgis an example: 8323a8d56dSmrg 8423a8d56dSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8523a8d56dSmrg 8623a8d56dSmrg *Note Defining Variables::, for more details. 8723a8d56dSmrg 8823a8d56dSmrgCompiling For Multiple Architectures 8923a8d56dSmrg==================================== 9023a8d56dSmrg 9123a8d56dSmrg You can compile the package for more than one kind of computer at the 9223a8d56dSmrgsame time, by placing the object files for each architecture in their 9323a8d56dSmrgown directory. To do this, you can use GNU `make'. `cd' to the 9423a8d56dSmrgdirectory where you want the object files and executables to go and run 9523a8d56dSmrgthe `configure' script. `configure' automatically checks for the 9623a8d56dSmrgsource code in the directory that `configure' is in and in `..'. 9723a8d56dSmrg 9823a8d56dSmrg With a non-GNU `make', it is safer to compile the package for one 9923a8d56dSmrgarchitecture at a time in the source code directory. After you have 10023a8d56dSmrginstalled the package for one architecture, use `make distclean' before 10123a8d56dSmrgreconfiguring for another architecture. 10223a8d56dSmrg 10323a8d56dSmrg On MacOS X 10.5 and later systems, you can create libraries and 10423a8d56dSmrgexecutables that work on multiple system types--known as "fat" or 10523a8d56dSmrg"universal" binaries--by specifying multiple `-arch' options to the 10623a8d56dSmrgcompiler but only a single `-arch' option to the preprocessor. Like 10723a8d56dSmrgthis: 10823a8d56dSmrg 10923a8d56dSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11023a8d56dSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11123a8d56dSmrg CPP="gcc -E" CXXCPP="g++ -E" 11223a8d56dSmrg 11323a8d56dSmrg This is not guaranteed to produce working output in all cases, you 11423a8d56dSmrgmay have to build one architecture at a time and combine the results 11523a8d56dSmrgusing the `lipo' tool if you have problems. 11623a8d56dSmrg 11723a8d56dSmrgInstallation Names 11823a8d56dSmrg================== 11923a8d56dSmrg 12023a8d56dSmrg By default, `make install' installs the package's commands under 12123a8d56dSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12223a8d56dSmrgcan specify an installation prefix other than `/usr/local' by giving 12323a8d56dSmrg`configure' the option `--prefix=PREFIX'. 12423a8d56dSmrg 12523a8d56dSmrg You can specify separate installation prefixes for 12623a8d56dSmrgarchitecture-specific files and architecture-independent files. If you 12723a8d56dSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12823a8d56dSmrgPREFIX as the prefix for installing programs and libraries. 12923a8d56dSmrgDocumentation and other data files still use the regular prefix. 13023a8d56dSmrg 13123a8d56dSmrg In addition, if you use an unusual directory layout you can give 13223a8d56dSmrgoptions like `--bindir=DIR' to specify different values for particular 13323a8d56dSmrgkinds of files. Run `configure --help' for a list of the directories 13423a8d56dSmrgyou can set and what kinds of files go in them. 13523a8d56dSmrg 13623a8d56dSmrg If the package supports it, you can cause programs to be installed 13723a8d56dSmrgwith an extra prefix or suffix on their names by giving `configure' the 13823a8d56dSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13923a8d56dSmrg 14023a8d56dSmrgOptional Features 14123a8d56dSmrg================= 14223a8d56dSmrg 14323a8d56dSmrg Some packages pay attention to `--enable-FEATURE' options to 14423a8d56dSmrg`configure', where FEATURE indicates an optional part of the package. 14523a8d56dSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14623a8d56dSmrgis something like `gnu-as' or `x' (for the X Window System). The 14723a8d56dSmrg`README' should mention any `--enable-' and `--with-' options that the 14823a8d56dSmrgpackage recognizes. 14923a8d56dSmrg 15023a8d56dSmrg For packages that use the X Window System, `configure' can usually 15123a8d56dSmrgfind the X include and library files automatically, but if it doesn't, 15223a8d56dSmrgyou can use the `configure' options `--x-includes=DIR' and 15323a8d56dSmrg`--x-libraries=DIR' to specify their locations. 15423a8d56dSmrg 15523a8d56dSmrgParticular systems 15623a8d56dSmrg================== 15723a8d56dSmrg 15823a8d56dSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15923a8d56dSmrgCC is not installed, it is recommended to use the following options in 16023a8d56dSmrgorder to use an ANSI C compiler: 16123a8d56dSmrg 16223a8d56dSmrg ./configure CC="cc -Ae" 16323a8d56dSmrg 16423a8d56dSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16523a8d56dSmrg 16623a8d56dSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16723a8d56dSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16823a8d56dSmrga workaround. If GNU CC is not installed, it is therefore recommended 16923a8d56dSmrgto try 17023a8d56dSmrg 17123a8d56dSmrg ./configure CC="cc" 17223a8d56dSmrg 17323a8d56dSmrgand if that doesn't work, try 17423a8d56dSmrg 17523a8d56dSmrg ./configure CC="cc -nodtk" 17623a8d56dSmrg 17723a8d56dSmrgSpecifying the System Type 17823a8d56dSmrg========================== 17923a8d56dSmrg 18023a8d56dSmrg There may be some features `configure' cannot figure out 18123a8d56dSmrgautomatically, but needs to determine by the type of machine the package 18223a8d56dSmrgwill run on. Usually, assuming the package is built to be run on the 18323a8d56dSmrg_same_ architectures, `configure' can figure that out, but if it prints 18423a8d56dSmrga message saying it cannot guess the machine type, give it the 18523a8d56dSmrg`--build=TYPE' option. TYPE can either be a short name for the system 18623a8d56dSmrgtype, such as `sun4', or a canonical name which has the form: 18723a8d56dSmrg 18823a8d56dSmrg CPU-COMPANY-SYSTEM 18923a8d56dSmrg 19023a8d56dSmrgwhere SYSTEM can have one of these forms: 19123a8d56dSmrg 19223a8d56dSmrg OS KERNEL-OS 19323a8d56dSmrg 19423a8d56dSmrg See the file `config.sub' for the possible values of each field. If 19523a8d56dSmrg`config.sub' isn't included in this package, then this package doesn't 19623a8d56dSmrgneed to know the machine type. 19723a8d56dSmrg 19823a8d56dSmrg If you are _building_ compiler tools for cross-compiling, you should 19923a8d56dSmrguse the option `--target=TYPE' to select the type of system they will 20023a8d56dSmrgproduce code for. 20123a8d56dSmrg 20223a8d56dSmrg If you want to _use_ a cross compiler, that generates code for a 20323a8d56dSmrgplatform different from the build platform, you should specify the 20423a8d56dSmrg"host" platform (i.e., that on which the generated programs will 20523a8d56dSmrgeventually be run) with `--host=TYPE'. 20623a8d56dSmrg 20723a8d56dSmrgSharing Defaults 20823a8d56dSmrg================ 20923a8d56dSmrg 21023a8d56dSmrg If you want to set default values for `configure' scripts to share, 21123a8d56dSmrgyou can create a site shell script called `config.site' that gives 21223a8d56dSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 21323a8d56dSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21423a8d56dSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21523a8d56dSmrg`CONFIG_SITE' environment variable to the location of the site script. 21623a8d56dSmrgA warning: not all `configure' scripts look for a site script. 21723a8d56dSmrg 21823a8d56dSmrgDefining Variables 21923a8d56dSmrg================== 22023a8d56dSmrg 22123a8d56dSmrg Variables not defined in a site shell script can be set in the 22223a8d56dSmrgenvironment passed to `configure'. However, some packages may run 22323a8d56dSmrgconfigure again during the build, and the customized values of these 22423a8d56dSmrgvariables may be lost. In order to avoid this problem, you should set 22523a8d56dSmrgthem in the `configure' command line, using `VAR=value'. For example: 22623a8d56dSmrg 22723a8d56dSmrg ./configure CC=/usr/local2/bin/gcc 22823a8d56dSmrg 22923a8d56dSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 23023a8d56dSmrgoverridden in the site shell script). 23123a8d56dSmrg 23223a8d56dSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23323a8d56dSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23423a8d56dSmrg 23523a8d56dSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23623a8d56dSmrg 23723a8d56dSmrg`configure' Invocation 23823a8d56dSmrg====================== 23923a8d56dSmrg 24023a8d56dSmrg `configure' recognizes the following options to control how it 24123a8d56dSmrgoperates. 24223a8d56dSmrg 24323a8d56dSmrg`--help' 24423a8d56dSmrg`-h' 24523a8d56dSmrg Print a summary of all of the options to `configure', and exit. 24623a8d56dSmrg 24723a8d56dSmrg`--help=short' 24823a8d56dSmrg`--help=recursive' 24923a8d56dSmrg Print a summary of the options unique to this package's 25023a8d56dSmrg `configure', and exit. The `short' variant lists options used 25123a8d56dSmrg only in the top level, while the `recursive' variant lists options 25223a8d56dSmrg also present in any nested packages. 25323a8d56dSmrg 25423a8d56dSmrg`--version' 25523a8d56dSmrg`-V' 25623a8d56dSmrg Print the version of Autoconf used to generate the `configure' 25723a8d56dSmrg script, and exit. 25823a8d56dSmrg 25923a8d56dSmrg`--cache-file=FILE' 26023a8d56dSmrg Enable the cache: use and save the results of the tests in FILE, 26123a8d56dSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26223a8d56dSmrg disable caching. 26323a8d56dSmrg 26423a8d56dSmrg`--config-cache' 26523a8d56dSmrg`-C' 26623a8d56dSmrg Alias for `--cache-file=config.cache'. 26723a8d56dSmrg 26823a8d56dSmrg`--quiet' 26923a8d56dSmrg`--silent' 27023a8d56dSmrg`-q' 27123a8d56dSmrg Do not print messages saying which checks are being made. To 27223a8d56dSmrg suppress all normal output, redirect it to `/dev/null' (any error 27323a8d56dSmrg messages will still be shown). 27423a8d56dSmrg 27523a8d56dSmrg`--srcdir=DIR' 27623a8d56dSmrg Look for the package's source code in directory DIR. Usually 27723a8d56dSmrg `configure' can determine that directory automatically. 27823a8d56dSmrg 27923a8d56dSmrg`--prefix=DIR' 28023a8d56dSmrg Use DIR as the installation prefix. *Note Installation Names:: 28123a8d56dSmrg for more details, including other options available for fine-tuning 28223a8d56dSmrg the installation locations. 28323a8d56dSmrg 28423a8d56dSmrg`--no-create' 28523a8d56dSmrg`-n' 28623a8d56dSmrg Run the configure checks, but stop before creating any output 28723a8d56dSmrg files. 28823a8d56dSmrg 28923a8d56dSmrg`configure' also accepts some other, not widely useful, options. Run 29023a8d56dSmrg`configure --help' for more details. 29123a8d56dSmrg 292