INSTALL revision 42a55b46
142a55b46SmrgInstallation Instructions 242a55b46Smrg************************* 342a55b46Smrg 442a55b46SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 542a55b46Smrg2006, 2007, 2008 Free Software Foundation, Inc. 642a55b46Smrg 742a55b46Smrg This file is free documentation; the Free Software Foundation gives 842a55b46Smrgunlimited permission to copy, distribute and modify it. 942a55b46Smrg 1042a55b46SmrgBasic Installation 1142a55b46Smrg================== 1242a55b46Smrg 1342a55b46Smrg Briefly, the shell commands `./configure; make; make install' should 1442a55b46Smrgconfigure, build, and install this package. The following 1542a55b46Smrgmore-detailed instructions are generic; see the `README' file for 1642a55b46Smrginstructions specific to this package. 1742a55b46Smrg 1842a55b46Smrg The `configure' shell script attempts to guess correct values for 1942a55b46Smrgvarious system-dependent variables used during compilation. It uses 2042a55b46Smrgthose values to create a `Makefile' in each directory of the package. 2142a55b46SmrgIt may also create one or more `.h' files containing system-dependent 2242a55b46Smrgdefinitions. Finally, it creates a shell script `config.status' that 2342a55b46Smrgyou can run in the future to recreate the current configuration, and a 2442a55b46Smrgfile `config.log' containing compiler output (useful mainly for 2542a55b46Smrgdebugging `configure'). 2642a55b46Smrg 2742a55b46Smrg It can also use an optional file (typically called `config.cache' 2842a55b46Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2942a55b46Smrgthe results of its tests to speed up reconfiguring. Caching is 3042a55b46Smrgdisabled by default to prevent problems with accidental use of stale 3142a55b46Smrgcache files. 3242a55b46Smrg 3342a55b46Smrg If you need to do unusual things to compile the package, please try 3442a55b46Smrgto figure out how `configure' could check whether to do them, and mail 3542a55b46Smrgdiffs or instructions to the address given in the `README' so they can 3642a55b46Smrgbe considered for the next release. If you are using the cache, and at 3742a55b46Smrgsome point `config.cache' contains results you don't want to keep, you 3842a55b46Smrgmay remove or edit it. 3942a55b46Smrg 4042a55b46Smrg The file `configure.ac' (or `configure.in') is used to create 4142a55b46Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 4242a55b46Smrgyou want to change it or regenerate `configure' using a newer version 4342a55b46Smrgof `autoconf'. 4442a55b46Smrg 4542a55b46SmrgThe simplest way to compile this package is: 4642a55b46Smrg 4742a55b46Smrg 1. `cd' to the directory containing the package's source code and type 4842a55b46Smrg `./configure' to configure the package for your system. 4942a55b46Smrg 5042a55b46Smrg Running `configure' might take a while. While running, it prints 5142a55b46Smrg some messages telling which features it is checking for. 5242a55b46Smrg 5342a55b46Smrg 2. Type `make' to compile the package. 5442a55b46Smrg 5542a55b46Smrg 3. Optionally, type `make check' to run any self-tests that come with 5642a55b46Smrg the package. 5742a55b46Smrg 5842a55b46Smrg 4. Type `make install' to install the programs and any data files and 5942a55b46Smrg documentation. 6042a55b46Smrg 6142a55b46Smrg 5. You can remove the program binaries and object files from the 6242a55b46Smrg source code directory by typing `make clean'. To also remove the 6342a55b46Smrg files that `configure' created (so you can compile the package for 6442a55b46Smrg a different kind of computer), type `make distclean'. There is 6542a55b46Smrg also a `make maintainer-clean' target, but that is intended mainly 6642a55b46Smrg for the package's developers. If you use it, you may have to get 6742a55b46Smrg all sorts of other programs in order to regenerate files that came 6842a55b46Smrg with the distribution. 6942a55b46Smrg 7042a55b46Smrg 6. Often, you can also type `make uninstall' to remove the installed 7142a55b46Smrg files again. 7242a55b46Smrg 7342a55b46SmrgCompilers and Options 7442a55b46Smrg===================== 7542a55b46Smrg 7642a55b46Smrg Some systems require unusual options for compilation or linking that 7742a55b46Smrgthe `configure' script does not know about. Run `./configure --help' 7842a55b46Smrgfor details on some of the pertinent environment variables. 7942a55b46Smrg 8042a55b46Smrg You can give `configure' initial values for configuration parameters 8142a55b46Smrgby setting variables in the command line or in the environment. Here 8242a55b46Smrgis an example: 8342a55b46Smrg 8442a55b46Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8542a55b46Smrg 8642a55b46Smrg *Note Defining Variables::, for more details. 8742a55b46Smrg 8842a55b46SmrgCompiling For Multiple Architectures 8942a55b46Smrg==================================== 9042a55b46Smrg 9142a55b46Smrg You can compile the package for more than one kind of computer at the 9242a55b46Smrgsame time, by placing the object files for each architecture in their 9342a55b46Smrgown directory. To do this, you can use GNU `make'. `cd' to the 9442a55b46Smrgdirectory where you want the object files and executables to go and run 9542a55b46Smrgthe `configure' script. `configure' automatically checks for the 9642a55b46Smrgsource code in the directory that `configure' is in and in `..'. 9742a55b46Smrg 9842a55b46Smrg With a non-GNU `make', it is safer to compile the package for one 9942a55b46Smrgarchitecture at a time in the source code directory. After you have 10042a55b46Smrginstalled the package for one architecture, use `make distclean' before 10142a55b46Smrgreconfiguring for another architecture. 10242a55b46Smrg 10342a55b46Smrg On MacOS X 10.5 and later systems, you can create libraries and 10442a55b46Smrgexecutables that work on multiple system types--known as "fat" or 10542a55b46Smrg"universal" binaries--by specifying multiple `-arch' options to the 10642a55b46Smrgcompiler but only a single `-arch' option to the preprocessor. Like 10742a55b46Smrgthis: 10842a55b46Smrg 10942a55b46Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11042a55b46Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11142a55b46Smrg CPP="gcc -E" CXXCPP="g++ -E" 11242a55b46Smrg 11342a55b46Smrg This is not guaranteed to produce working output in all cases, you 11442a55b46Smrgmay have to build one architecture at a time and combine the results 11542a55b46Smrgusing the `lipo' tool if you have problems. 11642a55b46Smrg 11742a55b46SmrgInstallation Names 11842a55b46Smrg================== 11942a55b46Smrg 12042a55b46Smrg By default, `make install' installs the package's commands under 12142a55b46Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12242a55b46Smrgcan specify an installation prefix other than `/usr/local' by giving 12342a55b46Smrg`configure' the option `--prefix=PREFIX'. 12442a55b46Smrg 12542a55b46Smrg You can specify separate installation prefixes for 12642a55b46Smrgarchitecture-specific files and architecture-independent files. If you 12742a55b46Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12842a55b46SmrgPREFIX as the prefix for installing programs and libraries. 12942a55b46SmrgDocumentation and other data files still use the regular prefix. 13042a55b46Smrg 13142a55b46Smrg In addition, if you use an unusual directory layout you can give 13242a55b46Smrgoptions like `--bindir=DIR' to specify different values for particular 13342a55b46Smrgkinds of files. Run `configure --help' for a list of the directories 13442a55b46Smrgyou can set and what kinds of files go in them. 13542a55b46Smrg 13642a55b46Smrg If the package supports it, you can cause programs to be installed 13742a55b46Smrgwith an extra prefix or suffix on their names by giving `configure' the 13842a55b46Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13942a55b46Smrg 14042a55b46SmrgOptional Features 14142a55b46Smrg================= 14242a55b46Smrg 14342a55b46Smrg Some packages pay attention to `--enable-FEATURE' options to 14442a55b46Smrg`configure', where FEATURE indicates an optional part of the package. 14542a55b46SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14642a55b46Smrgis something like `gnu-as' or `x' (for the X Window System). The 14742a55b46Smrg`README' should mention any `--enable-' and `--with-' options that the 14842a55b46Smrgpackage recognizes. 14942a55b46Smrg 15042a55b46Smrg For packages that use the X Window System, `configure' can usually 15142a55b46Smrgfind the X include and library files automatically, but if it doesn't, 15242a55b46Smrgyou can use the `configure' options `--x-includes=DIR' and 15342a55b46Smrg`--x-libraries=DIR' to specify their locations. 15442a55b46Smrg 15542a55b46SmrgParticular systems 15642a55b46Smrg================== 15742a55b46Smrg 15842a55b46Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15942a55b46SmrgCC is not installed, it is recommended to use the following options in 16042a55b46Smrgorder to use an ANSI C compiler: 16142a55b46Smrg 16242a55b46Smrg ./configure CC="cc -Ae" 16342a55b46Smrg 16442a55b46Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16542a55b46Smrg 16642a55b46Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16742a55b46Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16842a55b46Smrga workaround. If GNU CC is not installed, it is therefore recommended 16942a55b46Smrgto try 17042a55b46Smrg 17142a55b46Smrg ./configure CC="cc" 17242a55b46Smrg 17342a55b46Smrgand if that doesn't work, try 17442a55b46Smrg 17542a55b46Smrg ./configure CC="cc -nodtk" 17642a55b46Smrg 17742a55b46SmrgSpecifying the System Type 17842a55b46Smrg========================== 17942a55b46Smrg 18042a55b46Smrg There may be some features `configure' cannot figure out 18142a55b46Smrgautomatically, but needs to determine by the type of machine the package 18242a55b46Smrgwill run on. Usually, assuming the package is built to be run on the 18342a55b46Smrg_same_ architectures, `configure' can figure that out, but if it prints 18442a55b46Smrga message saying it cannot guess the machine type, give it the 18542a55b46Smrg`--build=TYPE' option. TYPE can either be a short name for the system 18642a55b46Smrgtype, such as `sun4', or a canonical name which has the form: 18742a55b46Smrg 18842a55b46Smrg CPU-COMPANY-SYSTEM 18942a55b46Smrg 19042a55b46Smrgwhere SYSTEM can have one of these forms: 19142a55b46Smrg 19242a55b46Smrg OS KERNEL-OS 19342a55b46Smrg 19442a55b46Smrg See the file `config.sub' for the possible values of each field. If 19542a55b46Smrg`config.sub' isn't included in this package, then this package doesn't 19642a55b46Smrgneed to know the machine type. 19742a55b46Smrg 19842a55b46Smrg If you are _building_ compiler tools for cross-compiling, you should 19942a55b46Smrguse the option `--target=TYPE' to select the type of system they will 20042a55b46Smrgproduce code for. 20142a55b46Smrg 20242a55b46Smrg If you want to _use_ a cross compiler, that generates code for a 20342a55b46Smrgplatform different from the build platform, you should specify the 20442a55b46Smrg"host" platform (i.e., that on which the generated programs will 20542a55b46Smrgeventually be run) with `--host=TYPE'. 20642a55b46Smrg 20742a55b46SmrgSharing Defaults 20842a55b46Smrg================ 20942a55b46Smrg 21042a55b46Smrg If you want to set default values for `configure' scripts to share, 21142a55b46Smrgyou can create a site shell script called `config.site' that gives 21242a55b46Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 21342a55b46Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21442a55b46Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21542a55b46Smrg`CONFIG_SITE' environment variable to the location of the site script. 21642a55b46SmrgA warning: not all `configure' scripts look for a site script. 21742a55b46Smrg 21842a55b46SmrgDefining Variables 21942a55b46Smrg================== 22042a55b46Smrg 22142a55b46Smrg Variables not defined in a site shell script can be set in the 22242a55b46Smrgenvironment passed to `configure'. However, some packages may run 22342a55b46Smrgconfigure again during the build, and the customized values of these 22442a55b46Smrgvariables may be lost. In order to avoid this problem, you should set 22542a55b46Smrgthem in the `configure' command line, using `VAR=value'. For example: 22642a55b46Smrg 22742a55b46Smrg ./configure CC=/usr/local2/bin/gcc 22842a55b46Smrg 22942a55b46Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 23042a55b46Smrgoverridden in the site shell script). 23142a55b46Smrg 23242a55b46SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23342a55b46Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23442a55b46Smrg 23542a55b46Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23642a55b46Smrg 23742a55b46Smrg`configure' Invocation 23842a55b46Smrg====================== 23942a55b46Smrg 24042a55b46Smrg `configure' recognizes the following options to control how it 24142a55b46Smrgoperates. 24242a55b46Smrg 24342a55b46Smrg`--help' 24442a55b46Smrg`-h' 24542a55b46Smrg Print a summary of all of the options to `configure', and exit. 24642a55b46Smrg 24742a55b46Smrg`--help=short' 24842a55b46Smrg`--help=recursive' 24942a55b46Smrg Print a summary of the options unique to this package's 25042a55b46Smrg `configure', and exit. The `short' variant lists options used 25142a55b46Smrg only in the top level, while the `recursive' variant lists options 25242a55b46Smrg also present in any nested packages. 25342a55b46Smrg 25442a55b46Smrg`--version' 25542a55b46Smrg`-V' 25642a55b46Smrg Print the version of Autoconf used to generate the `configure' 25742a55b46Smrg script, and exit. 25842a55b46Smrg 25942a55b46Smrg`--cache-file=FILE' 26042a55b46Smrg Enable the cache: use and save the results of the tests in FILE, 26142a55b46Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26242a55b46Smrg disable caching. 26342a55b46Smrg 26442a55b46Smrg`--config-cache' 26542a55b46Smrg`-C' 26642a55b46Smrg Alias for `--cache-file=config.cache'. 26742a55b46Smrg 26842a55b46Smrg`--quiet' 26942a55b46Smrg`--silent' 27042a55b46Smrg`-q' 27142a55b46Smrg Do not print messages saying which checks are being made. To 27242a55b46Smrg suppress all normal output, redirect it to `/dev/null' (any error 27342a55b46Smrg messages will still be shown). 27442a55b46Smrg 27542a55b46Smrg`--srcdir=DIR' 27642a55b46Smrg Look for the package's source code in directory DIR. Usually 27742a55b46Smrg `configure' can determine that directory automatically. 27842a55b46Smrg 27942a55b46Smrg`--prefix=DIR' 28042a55b46Smrg Use DIR as the installation prefix. *Note Installation Names:: 28142a55b46Smrg for more details, including other options available for fine-tuning 28242a55b46Smrg the installation locations. 28342a55b46Smrg 28442a55b46Smrg`--no-create' 28542a55b46Smrg`-n' 28642a55b46Smrg Run the configure checks, but stop before creating any output 28742a55b46Smrg files. 28842a55b46Smrg 28942a55b46Smrg`configure' also accepts some other, not widely useful, options. Run 29042a55b46Smrg`configure --help' for more details. 29142a55b46Smrg 292