INSTALL revision 909209ee
1909209eeSmrgInstallation Instructions 2909209eeSmrg************************* 3909209eeSmrg 4909209eeSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 5909209eeSmrg2006, 2007, 2008 Free Software Foundation, Inc. 6909209eeSmrg 7909209eeSmrg This file is free documentation; the Free Software Foundation gives 8909209eeSmrgunlimited permission to copy, distribute and modify it. 9909209eeSmrg 10909209eeSmrgBasic Installation 11909209eeSmrg================== 12909209eeSmrg 13909209eeSmrg Briefly, the shell commands `./configure; make; make install' should 14909209eeSmrgconfigure, build, and install this package. The following 15909209eeSmrgmore-detailed instructions are generic; see the `README' file for 16909209eeSmrginstructions specific to this package. 17909209eeSmrg 18909209eeSmrg The `configure' shell script attempts to guess correct values for 19909209eeSmrgvarious system-dependent variables used during compilation. It uses 20909209eeSmrgthose values to create a `Makefile' in each directory of the package. 21909209eeSmrgIt may also create one or more `.h' files containing system-dependent 22909209eeSmrgdefinitions. Finally, it creates a shell script `config.status' that 23909209eeSmrgyou can run in the future to recreate the current configuration, and a 24909209eeSmrgfile `config.log' containing compiler output (useful mainly for 25909209eeSmrgdebugging `configure'). 26909209eeSmrg 27909209eeSmrg It can also use an optional file (typically called `config.cache' 28909209eeSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 29909209eeSmrgthe results of its tests to speed up reconfiguring. Caching is 30909209eeSmrgdisabled by default to prevent problems with accidental use of stale 31909209eeSmrgcache files. 32909209eeSmrg 33909209eeSmrg If you need to do unusual things to compile the package, please try 34909209eeSmrgto figure out how `configure' could check whether to do them, and mail 35909209eeSmrgdiffs or instructions to the address given in the `README' so they can 36909209eeSmrgbe considered for the next release. If you are using the cache, and at 37909209eeSmrgsome point `config.cache' contains results you don't want to keep, you 38909209eeSmrgmay remove or edit it. 39909209eeSmrg 40909209eeSmrg The file `configure.ac' (or `configure.in') is used to create 41909209eeSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 42909209eeSmrgyou want to change it or regenerate `configure' using a newer version 43909209eeSmrgof `autoconf'. 44909209eeSmrg 45909209eeSmrgThe simplest way to compile this package is: 46909209eeSmrg 47909209eeSmrg 1. `cd' to the directory containing the package's source code and type 48909209eeSmrg `./configure' to configure the package for your system. 49909209eeSmrg 50909209eeSmrg Running `configure' might take a while. While running, it prints 51909209eeSmrg some messages telling which features it is checking for. 52909209eeSmrg 53909209eeSmrg 2. Type `make' to compile the package. 54909209eeSmrg 55909209eeSmrg 3. Optionally, type `make check' to run any self-tests that come with 56909209eeSmrg the package. 57909209eeSmrg 58909209eeSmrg 4. Type `make install' to install the programs and any data files and 59909209eeSmrg documentation. 60909209eeSmrg 61909209eeSmrg 5. You can remove the program binaries and object files from the 62909209eeSmrg source code directory by typing `make clean'. To also remove the 63909209eeSmrg files that `configure' created (so you can compile the package for 64909209eeSmrg a different kind of computer), type `make distclean'. There is 65909209eeSmrg also a `make maintainer-clean' target, but that is intended mainly 66909209eeSmrg for the package's developers. If you use it, you may have to get 67909209eeSmrg all sorts of other programs in order to regenerate files that came 68909209eeSmrg with the distribution. 69909209eeSmrg 70909209eeSmrg 6. Often, you can also type `make uninstall' to remove the installed 71909209eeSmrg files again. 72909209eeSmrg 73909209eeSmrgCompilers and Options 74909209eeSmrg===================== 75909209eeSmrg 76909209eeSmrg Some systems require unusual options for compilation or linking that 77909209eeSmrgthe `configure' script does not know about. Run `./configure --help' 78909209eeSmrgfor details on some of the pertinent environment variables. 79909209eeSmrg 80909209eeSmrg You can give `configure' initial values for configuration parameters 81909209eeSmrgby setting variables in the command line or in the environment. Here 82909209eeSmrgis an example: 83909209eeSmrg 84909209eeSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 85909209eeSmrg 86909209eeSmrg *Note Defining Variables::, for more details. 87909209eeSmrg 88909209eeSmrgCompiling For Multiple Architectures 89909209eeSmrg==================================== 90909209eeSmrg 91909209eeSmrg You can compile the package for more than one kind of computer at the 92909209eeSmrgsame time, by placing the object files for each architecture in their 93909209eeSmrgown directory. To do this, you can use GNU `make'. `cd' to the 94909209eeSmrgdirectory where you want the object files and executables to go and run 95909209eeSmrgthe `configure' script. `configure' automatically checks for the 96909209eeSmrgsource code in the directory that `configure' is in and in `..'. 97909209eeSmrg 98909209eeSmrg With a non-GNU `make', it is safer to compile the package for one 99909209eeSmrgarchitecture at a time in the source code directory. After you have 100909209eeSmrginstalled the package for one architecture, use `make distclean' before 101909209eeSmrgreconfiguring for another architecture. 102909209eeSmrg 103909209eeSmrg On MacOS X 10.5 and later systems, you can create libraries and 104909209eeSmrgexecutables that work on multiple system types--known as "fat" or 105909209eeSmrg"universal" binaries--by specifying multiple `-arch' options to the 106909209eeSmrgcompiler but only a single `-arch' option to the preprocessor. Like 107909209eeSmrgthis: 108909209eeSmrg 109909209eeSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 110909209eeSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 111909209eeSmrg CPP="gcc -E" CXXCPP="g++ -E" 112909209eeSmrg 113909209eeSmrg This is not guaranteed to produce working output in all cases, you 114909209eeSmrgmay have to build one architecture at a time and combine the results 115909209eeSmrgusing the `lipo' tool if you have problems. 116909209eeSmrg 117909209eeSmrgInstallation Names 118909209eeSmrg================== 119909209eeSmrg 120909209eeSmrg By default, `make install' installs the package's commands under 121909209eeSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 122909209eeSmrgcan specify an installation prefix other than `/usr/local' by giving 123909209eeSmrg`configure' the option `--prefix=PREFIX'. 124909209eeSmrg 125909209eeSmrg You can specify separate installation prefixes for 126909209eeSmrgarchitecture-specific files and architecture-independent files. If you 127909209eeSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 128909209eeSmrgPREFIX as the prefix for installing programs and libraries. 129909209eeSmrgDocumentation and other data files still use the regular prefix. 130909209eeSmrg 131909209eeSmrg In addition, if you use an unusual directory layout you can give 132909209eeSmrgoptions like `--bindir=DIR' to specify different values for particular 133909209eeSmrgkinds of files. Run `configure --help' for a list of the directories 134909209eeSmrgyou can set and what kinds of files go in them. 135909209eeSmrg 136909209eeSmrg If the package supports it, you can cause programs to be installed 137909209eeSmrgwith an extra prefix or suffix on their names by giving `configure' the 138909209eeSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 139909209eeSmrg 140909209eeSmrgOptional Features 141909209eeSmrg================= 142909209eeSmrg 143909209eeSmrg Some packages pay attention to `--enable-FEATURE' options to 144909209eeSmrg`configure', where FEATURE indicates an optional part of the package. 145909209eeSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 146909209eeSmrgis something like `gnu-as' or `x' (for the X Window System). The 147909209eeSmrg`README' should mention any `--enable-' and `--with-' options that the 148909209eeSmrgpackage recognizes. 149909209eeSmrg 150909209eeSmrg For packages that use the X Window System, `configure' can usually 151909209eeSmrgfind the X include and library files automatically, but if it doesn't, 152909209eeSmrgyou can use the `configure' options `--x-includes=DIR' and 153909209eeSmrg`--x-libraries=DIR' to specify their locations. 154909209eeSmrg 155909209eeSmrgParticular systems 156909209eeSmrg================== 157909209eeSmrg 158909209eeSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 159909209eeSmrgCC is not installed, it is recommended to use the following options in 160909209eeSmrgorder to use an ANSI C compiler: 161909209eeSmrg 162909209eeSmrg ./configure CC="cc -Ae" 163909209eeSmrg 164909209eeSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 165909209eeSmrg 166909209eeSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 167909209eeSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 168909209eeSmrga workaround. If GNU CC is not installed, it is therefore recommended 169909209eeSmrgto try 170909209eeSmrg 171909209eeSmrg ./configure CC="cc" 172909209eeSmrg 173909209eeSmrgand if that doesn't work, try 174909209eeSmrg 175909209eeSmrg ./configure CC="cc -nodtk" 176909209eeSmrg 177909209eeSmrgSpecifying the System Type 178909209eeSmrg========================== 179909209eeSmrg 180909209eeSmrg There may be some features `configure' cannot figure out 181909209eeSmrgautomatically, but needs to determine by the type of machine the package 182909209eeSmrgwill run on. Usually, assuming the package is built to be run on the 183909209eeSmrg_same_ architectures, `configure' can figure that out, but if it prints 184909209eeSmrga message saying it cannot guess the machine type, give it the 185909209eeSmrg`--build=TYPE' option. TYPE can either be a short name for the system 186909209eeSmrgtype, such as `sun4', or a canonical name which has the form: 187909209eeSmrg 188909209eeSmrg CPU-COMPANY-SYSTEM 189909209eeSmrg 190909209eeSmrgwhere SYSTEM can have one of these forms: 191909209eeSmrg 192909209eeSmrg OS KERNEL-OS 193909209eeSmrg 194909209eeSmrg See the file `config.sub' for the possible values of each field. If 195909209eeSmrg`config.sub' isn't included in this package, then this package doesn't 196909209eeSmrgneed to know the machine type. 197909209eeSmrg 198909209eeSmrg If you are _building_ compiler tools for cross-compiling, you should 199909209eeSmrguse the option `--target=TYPE' to select the type of system they will 200909209eeSmrgproduce code for. 201909209eeSmrg 202909209eeSmrg If you want to _use_ a cross compiler, that generates code for a 203909209eeSmrgplatform different from the build platform, you should specify the 204909209eeSmrg"host" platform (i.e., that on which the generated programs will 205909209eeSmrgeventually be run) with `--host=TYPE'. 206909209eeSmrg 207909209eeSmrgSharing Defaults 208909209eeSmrg================ 209909209eeSmrg 210909209eeSmrg If you want to set default values for `configure' scripts to share, 211909209eeSmrgyou can create a site shell script called `config.site' that gives 212909209eeSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 213909209eeSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 214909209eeSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 215909209eeSmrg`CONFIG_SITE' environment variable to the location of the site script. 216909209eeSmrgA warning: not all `configure' scripts look for a site script. 217909209eeSmrg 218909209eeSmrgDefining Variables 219909209eeSmrg================== 220909209eeSmrg 221909209eeSmrg Variables not defined in a site shell script can be set in the 222909209eeSmrgenvironment passed to `configure'. However, some packages may run 223909209eeSmrgconfigure again during the build, and the customized values of these 224909209eeSmrgvariables may be lost. In order to avoid this problem, you should set 225909209eeSmrgthem in the `configure' command line, using `VAR=value'. For example: 226909209eeSmrg 227909209eeSmrg ./configure CC=/usr/local2/bin/gcc 228909209eeSmrg 229909209eeSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 230909209eeSmrgoverridden in the site shell script). 231909209eeSmrg 232909209eeSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 233909209eeSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 234909209eeSmrg 235909209eeSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 236909209eeSmrg 237909209eeSmrg`configure' Invocation 238909209eeSmrg====================== 239909209eeSmrg 240909209eeSmrg `configure' recognizes the following options to control how it 241909209eeSmrgoperates. 242909209eeSmrg 243909209eeSmrg`--help' 244909209eeSmrg`-h' 245909209eeSmrg Print a summary of all of the options to `configure', and exit. 246909209eeSmrg 247909209eeSmrg`--help=short' 248909209eeSmrg`--help=recursive' 249909209eeSmrg Print a summary of the options unique to this package's 250909209eeSmrg `configure', and exit. The `short' variant lists options used 251909209eeSmrg only in the top level, while the `recursive' variant lists options 252909209eeSmrg also present in any nested packages. 253909209eeSmrg 254909209eeSmrg`--version' 255909209eeSmrg`-V' 256909209eeSmrg Print the version of Autoconf used to generate the `configure' 257909209eeSmrg script, and exit. 258909209eeSmrg 259909209eeSmrg`--cache-file=FILE' 260909209eeSmrg Enable the cache: use and save the results of the tests in FILE, 261909209eeSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 262909209eeSmrg disable caching. 263909209eeSmrg 264909209eeSmrg`--config-cache' 265909209eeSmrg`-C' 266909209eeSmrg Alias for `--cache-file=config.cache'. 267909209eeSmrg 268909209eeSmrg`--quiet' 269909209eeSmrg`--silent' 270909209eeSmrg`-q' 271909209eeSmrg Do not print messages saying which checks are being made. To 272909209eeSmrg suppress all normal output, redirect it to `/dev/null' (any error 273909209eeSmrg messages will still be shown). 274909209eeSmrg 275909209eeSmrg`--srcdir=DIR' 276909209eeSmrg Look for the package's source code in directory DIR. Usually 277909209eeSmrg `configure' can determine that directory automatically. 278909209eeSmrg 279909209eeSmrg`--prefix=DIR' 280909209eeSmrg Use DIR as the installation prefix. *Note Installation Names:: 281909209eeSmrg for more details, including other options available for fine-tuning 282909209eeSmrg the installation locations. 283909209eeSmrg 284909209eeSmrg`--no-create' 285909209eeSmrg`-n' 286909209eeSmrg Run the configure checks, but stop before creating any output 287909209eeSmrg files. 288909209eeSmrg 289909209eeSmrg`configure' also accepts some other, not widely useful, options. Run 290909209eeSmrg`configure --help' for more details. 291909209eeSmrg 292