INSTALL revision 63847c39
163847c39SmrgInstallation Instructions 263847c39Smrg************************* 363847c39Smrg 463847c39SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 563847c39Smrg2006, 2007, 2008 Free Software Foundation, Inc. 663847c39Smrg 763847c39Smrg This file is free documentation; the Free Software Foundation gives 863847c39Smrgunlimited permission to copy, distribute and modify it. 963847c39Smrg 1063847c39SmrgBasic Installation 1163847c39Smrg================== 1263847c39Smrg 1363847c39Smrg Briefly, the shell commands `./configure; make; make install' should 1463847c39Smrgconfigure, build, and install this package. The following 1563847c39Smrgmore-detailed instructions are generic; see the `README' file for 1663847c39Smrginstructions specific to this package. 1763847c39Smrg 1863847c39Smrg The `configure' shell script attempts to guess correct values for 1963847c39Smrgvarious system-dependent variables used during compilation. It uses 2063847c39Smrgthose values to create a `Makefile' in each directory of the package. 2163847c39SmrgIt may also create one or more `.h' files containing system-dependent 2263847c39Smrgdefinitions. Finally, it creates a shell script `config.status' that 2363847c39Smrgyou can run in the future to recreate the current configuration, and a 2463847c39Smrgfile `config.log' containing compiler output (useful mainly for 2563847c39Smrgdebugging `configure'). 2663847c39Smrg 2763847c39Smrg It can also use an optional file (typically called `config.cache' 2863847c39Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2963847c39Smrgthe results of its tests to speed up reconfiguring. Caching is 3063847c39Smrgdisabled by default to prevent problems with accidental use of stale 3163847c39Smrgcache files. 3263847c39Smrg 3363847c39Smrg If you need to do unusual things to compile the package, please try 3463847c39Smrgto figure out how `configure' could check whether to do them, and mail 3563847c39Smrgdiffs or instructions to the address given in the `README' so they can 3663847c39Smrgbe considered for the next release. If you are using the cache, and at 3763847c39Smrgsome point `config.cache' contains results you don't want to keep, you 3863847c39Smrgmay remove or edit it. 3963847c39Smrg 4063847c39Smrg The file `configure.ac' (or `configure.in') is used to create 4163847c39Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 4263847c39Smrgyou want to change it or regenerate `configure' using a newer version 4363847c39Smrgof `autoconf'. 4463847c39Smrg 4563847c39SmrgThe simplest way to compile this package is: 4663847c39Smrg 4763847c39Smrg 1. `cd' to the directory containing the package's source code and type 4863847c39Smrg `./configure' to configure the package for your system. 4963847c39Smrg 5063847c39Smrg Running `configure' might take a while. While running, it prints 5163847c39Smrg some messages telling which features it is checking for. 5263847c39Smrg 5363847c39Smrg 2. Type `make' to compile the package. 5463847c39Smrg 5563847c39Smrg 3. Optionally, type `make check' to run any self-tests that come with 5663847c39Smrg the package. 5763847c39Smrg 5863847c39Smrg 4. Type `make install' to install the programs and any data files and 5963847c39Smrg documentation. 6063847c39Smrg 6163847c39Smrg 5. You can remove the program binaries and object files from the 6263847c39Smrg source code directory by typing `make clean'. To also remove the 6363847c39Smrg files that `configure' created (so you can compile the package for 6463847c39Smrg a different kind of computer), type `make distclean'. There is 6563847c39Smrg also a `make maintainer-clean' target, but that is intended mainly 6663847c39Smrg for the package's developers. If you use it, you may have to get 6763847c39Smrg all sorts of other programs in order to regenerate files that came 6863847c39Smrg with the distribution. 6963847c39Smrg 7063847c39Smrg 6. Often, you can also type `make uninstall' to remove the installed 7163847c39Smrg files again. 7263847c39Smrg 7363847c39SmrgCompilers and Options 7463847c39Smrg===================== 7563847c39Smrg 7663847c39Smrg Some systems require unusual options for compilation or linking that 7763847c39Smrgthe `configure' script does not know about. Run `./configure --help' 7863847c39Smrgfor details on some of the pertinent environment variables. 7963847c39Smrg 8063847c39Smrg You can give `configure' initial values for configuration parameters 8163847c39Smrgby setting variables in the command line or in the environment. Here 8263847c39Smrgis an example: 8363847c39Smrg 8463847c39Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8563847c39Smrg 8663847c39Smrg *Note Defining Variables::, for more details. 8763847c39Smrg 8863847c39SmrgCompiling For Multiple Architectures 8963847c39Smrg==================================== 9063847c39Smrg 9163847c39Smrg You can compile the package for more than one kind of computer at the 9263847c39Smrgsame time, by placing the object files for each architecture in their 9363847c39Smrgown directory. To do this, you can use GNU `make'. `cd' to the 9463847c39Smrgdirectory where you want the object files and executables to go and run 9563847c39Smrgthe `configure' script. `configure' automatically checks for the 9663847c39Smrgsource code in the directory that `configure' is in and in `..'. 9763847c39Smrg 9863847c39Smrg With a non-GNU `make', it is safer to compile the package for one 9963847c39Smrgarchitecture at a time in the source code directory. After you have 10063847c39Smrginstalled the package for one architecture, use `make distclean' before 10163847c39Smrgreconfiguring for another architecture. 10263847c39Smrg 10363847c39Smrg On MacOS X 10.5 and later systems, you can create libraries and 10463847c39Smrgexecutables that work on multiple system types--known as "fat" or 10563847c39Smrg"universal" binaries--by specifying multiple `-arch' options to the 10663847c39Smrgcompiler but only a single `-arch' option to the preprocessor. Like 10763847c39Smrgthis: 10863847c39Smrg 10963847c39Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11063847c39Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11163847c39Smrg CPP="gcc -E" CXXCPP="g++ -E" 11263847c39Smrg 11363847c39Smrg This is not guaranteed to produce working output in all cases, you 11463847c39Smrgmay have to build one architecture at a time and combine the results 11563847c39Smrgusing the `lipo' tool if you have problems. 11663847c39Smrg 11763847c39SmrgInstallation Names 11863847c39Smrg================== 11963847c39Smrg 12063847c39Smrg By default, `make install' installs the package's commands under 12163847c39Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12263847c39Smrgcan specify an installation prefix other than `/usr/local' by giving 12363847c39Smrg`configure' the option `--prefix=PREFIX'. 12463847c39Smrg 12563847c39Smrg You can specify separate installation prefixes for 12663847c39Smrgarchitecture-specific files and architecture-independent files. If you 12763847c39Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12863847c39SmrgPREFIX as the prefix for installing programs and libraries. 12963847c39SmrgDocumentation and other data files still use the regular prefix. 13063847c39Smrg 13163847c39Smrg In addition, if you use an unusual directory layout you can give 13263847c39Smrgoptions like `--bindir=DIR' to specify different values for particular 13363847c39Smrgkinds of files. Run `configure --help' for a list of the directories 13463847c39Smrgyou can set and what kinds of files go in them. 13563847c39Smrg 13663847c39Smrg If the package supports it, you can cause programs to be installed 13763847c39Smrgwith an extra prefix or suffix on their names by giving `configure' the 13863847c39Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13963847c39Smrg 14063847c39SmrgOptional Features 14163847c39Smrg================= 14263847c39Smrg 14363847c39Smrg Some packages pay attention to `--enable-FEATURE' options to 14463847c39Smrg`configure', where FEATURE indicates an optional part of the package. 14563847c39SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14663847c39Smrgis something like `gnu-as' or `x' (for the X Window System). The 14763847c39Smrg`README' should mention any `--enable-' and `--with-' options that the 14863847c39Smrgpackage recognizes. 14963847c39Smrg 15063847c39Smrg For packages that use the X Window System, `configure' can usually 15163847c39Smrgfind the X include and library files automatically, but if it doesn't, 15263847c39Smrgyou can use the `configure' options `--x-includes=DIR' and 15363847c39Smrg`--x-libraries=DIR' to specify their locations. 15463847c39Smrg 15563847c39SmrgParticular systems 15663847c39Smrg================== 15763847c39Smrg 15863847c39Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15963847c39SmrgCC is not installed, it is recommended to use the following options in 16063847c39Smrgorder to use an ANSI C compiler: 16163847c39Smrg 16263847c39Smrg ./configure CC="cc -Ae" 16363847c39Smrg 16463847c39Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16563847c39Smrg 16663847c39Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16763847c39Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16863847c39Smrga workaround. If GNU CC is not installed, it is therefore recommended 16963847c39Smrgto try 17063847c39Smrg 17163847c39Smrg ./configure CC="cc" 17263847c39Smrg 17363847c39Smrgand if that doesn't work, try 17463847c39Smrg 17563847c39Smrg ./configure CC="cc -nodtk" 17663847c39Smrg 17763847c39SmrgSpecifying the System Type 17863847c39Smrg========================== 17963847c39Smrg 18063847c39Smrg There may be some features `configure' cannot figure out 18163847c39Smrgautomatically, but needs to determine by the type of machine the package 18263847c39Smrgwill run on. Usually, assuming the package is built to be run on the 18363847c39Smrg_same_ architectures, `configure' can figure that out, but if it prints 18463847c39Smrga message saying it cannot guess the machine type, give it the 18563847c39Smrg`--build=TYPE' option. TYPE can either be a short name for the system 18663847c39Smrgtype, such as `sun4', or a canonical name which has the form: 18763847c39Smrg 18863847c39Smrg CPU-COMPANY-SYSTEM 18963847c39Smrg 19063847c39Smrgwhere SYSTEM can have one of these forms: 19163847c39Smrg 19263847c39Smrg OS KERNEL-OS 19363847c39Smrg 19463847c39Smrg See the file `config.sub' for the possible values of each field. If 19563847c39Smrg`config.sub' isn't included in this package, then this package doesn't 19663847c39Smrgneed to know the machine type. 19763847c39Smrg 19863847c39Smrg If you are _building_ compiler tools for cross-compiling, you should 19963847c39Smrguse the option `--target=TYPE' to select the type of system they will 20063847c39Smrgproduce code for. 20163847c39Smrg 20263847c39Smrg If you want to _use_ a cross compiler, that generates code for a 20363847c39Smrgplatform different from the build platform, you should specify the 20463847c39Smrg"host" platform (i.e., that on which the generated programs will 20563847c39Smrgeventually be run) with `--host=TYPE'. 20663847c39Smrg 20763847c39SmrgSharing Defaults 20863847c39Smrg================ 20963847c39Smrg 21063847c39Smrg If you want to set default values for `configure' scripts to share, 21163847c39Smrgyou can create a site shell script called `config.site' that gives 21263847c39Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 21363847c39Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21463847c39Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21563847c39Smrg`CONFIG_SITE' environment variable to the location of the site script. 21663847c39SmrgA warning: not all `configure' scripts look for a site script. 21763847c39Smrg 21863847c39SmrgDefining Variables 21963847c39Smrg================== 22063847c39Smrg 22163847c39Smrg Variables not defined in a site shell script can be set in the 22263847c39Smrgenvironment passed to `configure'. However, some packages may run 22363847c39Smrgconfigure again during the build, and the customized values of these 22463847c39Smrgvariables may be lost. In order to avoid this problem, you should set 22563847c39Smrgthem in the `configure' command line, using `VAR=value'. For example: 22663847c39Smrg 22763847c39Smrg ./configure CC=/usr/local2/bin/gcc 22863847c39Smrg 22963847c39Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 23063847c39Smrgoverridden in the site shell script). 23163847c39Smrg 23263847c39SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23363847c39Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23463847c39Smrg 23563847c39Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23663847c39Smrg 23763847c39Smrg`configure' Invocation 23863847c39Smrg====================== 23963847c39Smrg 24063847c39Smrg `configure' recognizes the following options to control how it 24163847c39Smrgoperates. 24263847c39Smrg 24363847c39Smrg`--help' 24463847c39Smrg`-h' 24563847c39Smrg Print a summary of all of the options to `configure', and exit. 24663847c39Smrg 24763847c39Smrg`--help=short' 24863847c39Smrg`--help=recursive' 24963847c39Smrg Print a summary of the options unique to this package's 25063847c39Smrg `configure', and exit. The `short' variant lists options used 25163847c39Smrg only in the top level, while the `recursive' variant lists options 25263847c39Smrg also present in any nested packages. 25363847c39Smrg 25463847c39Smrg`--version' 25563847c39Smrg`-V' 25663847c39Smrg Print the version of Autoconf used to generate the `configure' 25763847c39Smrg script, and exit. 25863847c39Smrg 25963847c39Smrg`--cache-file=FILE' 26063847c39Smrg Enable the cache: use and save the results of the tests in FILE, 26163847c39Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26263847c39Smrg disable caching. 26363847c39Smrg 26463847c39Smrg`--config-cache' 26563847c39Smrg`-C' 26663847c39Smrg Alias for `--cache-file=config.cache'. 26763847c39Smrg 26863847c39Smrg`--quiet' 26963847c39Smrg`--silent' 27063847c39Smrg`-q' 27163847c39Smrg Do not print messages saying which checks are being made. To 27263847c39Smrg suppress all normal output, redirect it to `/dev/null' (any error 27363847c39Smrg messages will still be shown). 27463847c39Smrg 27563847c39Smrg`--srcdir=DIR' 27663847c39Smrg Look for the package's source code in directory DIR. Usually 27763847c39Smrg `configure' can determine that directory automatically. 27863847c39Smrg 27963847c39Smrg`--prefix=DIR' 28063847c39Smrg Use DIR as the installation prefix. *Note Installation Names:: 28163847c39Smrg for more details, including other options available for fine-tuning 28263847c39Smrg the installation locations. 28363847c39Smrg 28463847c39Smrg`--no-create' 28563847c39Smrg`-n' 28663847c39Smrg Run the configure checks, but stop before creating any output 28763847c39Smrg files. 28863847c39Smrg 28963847c39Smrg`configure' also accepts some other, not widely useful, options. Run 29063847c39Smrg`configure --help' for more details. 29163847c39Smrg 292