INSTALL revision 736a7e2c
1736a7e2cSmrgInstallation Instructions 2736a7e2cSmrg************************* 3736a7e2cSmrg 4736a7e2cSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 5736a7e2cSmrg2006, 2007, 2008 Free Software Foundation, Inc. 6736a7e2cSmrg 7736a7e2cSmrg This file is free documentation; the Free Software Foundation gives 8736a7e2cSmrgunlimited permission to copy, distribute and modify it. 9736a7e2cSmrg 10736a7e2cSmrgBasic Installation 11736a7e2cSmrg================== 12736a7e2cSmrg 13736a7e2cSmrg Briefly, the shell commands `./configure; make; make install' should 14736a7e2cSmrgconfigure, build, and install this package. The following 15736a7e2cSmrgmore-detailed instructions are generic; see the `README' file for 16736a7e2cSmrginstructions specific to this package. 17736a7e2cSmrg 18736a7e2cSmrg The `configure' shell script attempts to guess correct values for 19736a7e2cSmrgvarious system-dependent variables used during compilation. It uses 20736a7e2cSmrgthose values to create a `Makefile' in each directory of the package. 21736a7e2cSmrgIt may also create one or more `.h' files containing system-dependent 22736a7e2cSmrgdefinitions. Finally, it creates a shell script `config.status' that 23736a7e2cSmrgyou can run in the future to recreate the current configuration, and a 24736a7e2cSmrgfile `config.log' containing compiler output (useful mainly for 25736a7e2cSmrgdebugging `configure'). 26736a7e2cSmrg 27736a7e2cSmrg It can also use an optional file (typically called `config.cache' 28736a7e2cSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 29736a7e2cSmrgthe results of its tests to speed up reconfiguring. Caching is 30736a7e2cSmrgdisabled by default to prevent problems with accidental use of stale 31736a7e2cSmrgcache files. 32736a7e2cSmrg 33736a7e2cSmrg If you need to do unusual things to compile the package, please try 34736a7e2cSmrgto figure out how `configure' could check whether to do them, and mail 35736a7e2cSmrgdiffs or instructions to the address given in the `README' so they can 36736a7e2cSmrgbe considered for the next release. If you are using the cache, and at 37736a7e2cSmrgsome point `config.cache' contains results you don't want to keep, you 38736a7e2cSmrgmay remove or edit it. 39736a7e2cSmrg 40736a7e2cSmrg The file `configure.ac' (or `configure.in') is used to create 41736a7e2cSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 42736a7e2cSmrgyou want to change it or regenerate `configure' using a newer version 43736a7e2cSmrgof `autoconf'. 44736a7e2cSmrg 45736a7e2cSmrgThe simplest way to compile this package is: 46736a7e2cSmrg 47736a7e2cSmrg 1. `cd' to the directory containing the package's source code and type 48736a7e2cSmrg `./configure' to configure the package for your system. 49736a7e2cSmrg 50736a7e2cSmrg Running `configure' might take a while. While running, it prints 51736a7e2cSmrg some messages telling which features it is checking for. 52736a7e2cSmrg 53736a7e2cSmrg 2. Type `make' to compile the package. 54736a7e2cSmrg 55736a7e2cSmrg 3. Optionally, type `make check' to run any self-tests that come with 56736a7e2cSmrg the package. 57736a7e2cSmrg 58736a7e2cSmrg 4. Type `make install' to install the programs and any data files and 59736a7e2cSmrg documentation. 60736a7e2cSmrg 61736a7e2cSmrg 5. You can remove the program binaries and object files from the 62736a7e2cSmrg source code directory by typing `make clean'. To also remove the 63736a7e2cSmrg files that `configure' created (so you can compile the package for 64736a7e2cSmrg a different kind of computer), type `make distclean'. There is 65736a7e2cSmrg also a `make maintainer-clean' target, but that is intended mainly 66736a7e2cSmrg for the package's developers. If you use it, you may have to get 67736a7e2cSmrg all sorts of other programs in order to regenerate files that came 68736a7e2cSmrg with the distribution. 69736a7e2cSmrg 70736a7e2cSmrg 6. Often, you can also type `make uninstall' to remove the installed 71736a7e2cSmrg files again. 72736a7e2cSmrg 73736a7e2cSmrgCompilers and Options 74736a7e2cSmrg===================== 75736a7e2cSmrg 76736a7e2cSmrg Some systems require unusual options for compilation or linking that 77736a7e2cSmrgthe `configure' script does not know about. Run `./configure --help' 78736a7e2cSmrgfor details on some of the pertinent environment variables. 79736a7e2cSmrg 80736a7e2cSmrg You can give `configure' initial values for configuration parameters 81736a7e2cSmrgby setting variables in the command line or in the environment. Here 82736a7e2cSmrgis an example: 83736a7e2cSmrg 84736a7e2cSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 85736a7e2cSmrg 86736a7e2cSmrg *Note Defining Variables::, for more details. 87736a7e2cSmrg 88736a7e2cSmrgCompiling For Multiple Architectures 89736a7e2cSmrg==================================== 90736a7e2cSmrg 91736a7e2cSmrg You can compile the package for more than one kind of computer at the 92736a7e2cSmrgsame time, by placing the object files for each architecture in their 93736a7e2cSmrgown directory. To do this, you can use GNU `make'. `cd' to the 94736a7e2cSmrgdirectory where you want the object files and executables to go and run 95736a7e2cSmrgthe `configure' script. `configure' automatically checks for the 96736a7e2cSmrgsource code in the directory that `configure' is in and in `..'. 97736a7e2cSmrg 98736a7e2cSmrg With a non-GNU `make', it is safer to compile the package for one 99736a7e2cSmrgarchitecture at a time in the source code directory. After you have 100736a7e2cSmrginstalled the package for one architecture, use `make distclean' before 101736a7e2cSmrgreconfiguring for another architecture. 102736a7e2cSmrg 103736a7e2cSmrg On MacOS X 10.5 and later systems, you can create libraries and 104736a7e2cSmrgexecutables that work on multiple system types--known as "fat" or 105736a7e2cSmrg"universal" binaries--by specifying multiple `-arch' options to the 106736a7e2cSmrgcompiler but only a single `-arch' option to the preprocessor. Like 107736a7e2cSmrgthis: 108736a7e2cSmrg 109736a7e2cSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 110736a7e2cSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 111736a7e2cSmrg CPP="gcc -E" CXXCPP="g++ -E" 112736a7e2cSmrg 113736a7e2cSmrg This is not guaranteed to produce working output in all cases, you 114736a7e2cSmrgmay have to build one architecture at a time and combine the results 115736a7e2cSmrgusing the `lipo' tool if you have problems. 116736a7e2cSmrg 117736a7e2cSmrgInstallation Names 118736a7e2cSmrg================== 119736a7e2cSmrg 120736a7e2cSmrg By default, `make install' installs the package's commands under 121736a7e2cSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 122736a7e2cSmrgcan specify an installation prefix other than `/usr/local' by giving 123736a7e2cSmrg`configure' the option `--prefix=PREFIX'. 124736a7e2cSmrg 125736a7e2cSmrg You can specify separate installation prefixes for 126736a7e2cSmrgarchitecture-specific files and architecture-independent files. If you 127736a7e2cSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 128736a7e2cSmrgPREFIX as the prefix for installing programs and libraries. 129736a7e2cSmrgDocumentation and other data files still use the regular prefix. 130736a7e2cSmrg 131736a7e2cSmrg In addition, if you use an unusual directory layout you can give 132736a7e2cSmrgoptions like `--bindir=DIR' to specify different values for particular 133736a7e2cSmrgkinds of files. Run `configure --help' for a list of the directories 134736a7e2cSmrgyou can set and what kinds of files go in them. 135736a7e2cSmrg 136736a7e2cSmrg If the package supports it, you can cause programs to be installed 137736a7e2cSmrgwith an extra prefix or suffix on their names by giving `configure' the 138736a7e2cSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 139736a7e2cSmrg 140736a7e2cSmrgOptional Features 141736a7e2cSmrg================= 142736a7e2cSmrg 143736a7e2cSmrg Some packages pay attention to `--enable-FEATURE' options to 144736a7e2cSmrg`configure', where FEATURE indicates an optional part of the package. 145736a7e2cSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 146736a7e2cSmrgis something like `gnu-as' or `x' (for the X Window System). The 147736a7e2cSmrg`README' should mention any `--enable-' and `--with-' options that the 148736a7e2cSmrgpackage recognizes. 149736a7e2cSmrg 150736a7e2cSmrg For packages that use the X Window System, `configure' can usually 151736a7e2cSmrgfind the X include and library files automatically, but if it doesn't, 152736a7e2cSmrgyou can use the `configure' options `--x-includes=DIR' and 153736a7e2cSmrg`--x-libraries=DIR' to specify their locations. 154736a7e2cSmrg 155736a7e2cSmrgParticular systems 156736a7e2cSmrg================== 157736a7e2cSmrg 158736a7e2cSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 159736a7e2cSmrgCC is not installed, it is recommended to use the following options in 160736a7e2cSmrgorder to use an ANSI C compiler: 161736a7e2cSmrg 162736a7e2cSmrg ./configure CC="cc -Ae" 163736a7e2cSmrg 164736a7e2cSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 165736a7e2cSmrg 166736a7e2cSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 167736a7e2cSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 168736a7e2cSmrga workaround. If GNU CC is not installed, it is therefore recommended 169736a7e2cSmrgto try 170736a7e2cSmrg 171736a7e2cSmrg ./configure CC="cc" 172736a7e2cSmrg 173736a7e2cSmrgand if that doesn't work, try 174736a7e2cSmrg 175736a7e2cSmrg ./configure CC="cc -nodtk" 176736a7e2cSmrg 177736a7e2cSmrgSpecifying the System Type 178736a7e2cSmrg========================== 179736a7e2cSmrg 180736a7e2cSmrg There may be some features `configure' cannot figure out 181736a7e2cSmrgautomatically, but needs to determine by the type of machine the package 182736a7e2cSmrgwill run on. Usually, assuming the package is built to be run on the 183736a7e2cSmrg_same_ architectures, `configure' can figure that out, but if it prints 184736a7e2cSmrga message saying it cannot guess the machine type, give it the 185736a7e2cSmrg`--build=TYPE' option. TYPE can either be a short name for the system 186736a7e2cSmrgtype, such as `sun4', or a canonical name which has the form: 187736a7e2cSmrg 188736a7e2cSmrg CPU-COMPANY-SYSTEM 189736a7e2cSmrg 190736a7e2cSmrgwhere SYSTEM can have one of these forms: 191736a7e2cSmrg 192736a7e2cSmrg OS KERNEL-OS 193736a7e2cSmrg 194736a7e2cSmrg See the file `config.sub' for the possible values of each field. If 195736a7e2cSmrg`config.sub' isn't included in this package, then this package doesn't 196736a7e2cSmrgneed to know the machine type. 197736a7e2cSmrg 198736a7e2cSmrg If you are _building_ compiler tools for cross-compiling, you should 199736a7e2cSmrguse the option `--target=TYPE' to select the type of system they will 200736a7e2cSmrgproduce code for. 201736a7e2cSmrg 202736a7e2cSmrg If you want to _use_ a cross compiler, that generates code for a 203736a7e2cSmrgplatform different from the build platform, you should specify the 204736a7e2cSmrg"host" platform (i.e., that on which the generated programs will 205736a7e2cSmrgeventually be run) with `--host=TYPE'. 206736a7e2cSmrg 207736a7e2cSmrgSharing Defaults 208736a7e2cSmrg================ 209736a7e2cSmrg 210736a7e2cSmrg If you want to set default values for `configure' scripts to share, 211736a7e2cSmrgyou can create a site shell script called `config.site' that gives 212736a7e2cSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 213736a7e2cSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 214736a7e2cSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 215736a7e2cSmrg`CONFIG_SITE' environment variable to the location of the site script. 216736a7e2cSmrgA warning: not all `configure' scripts look for a site script. 217736a7e2cSmrg 218736a7e2cSmrgDefining Variables 219736a7e2cSmrg================== 220736a7e2cSmrg 221736a7e2cSmrg Variables not defined in a site shell script can be set in the 222736a7e2cSmrgenvironment passed to `configure'. However, some packages may run 223736a7e2cSmrgconfigure again during the build, and the customized values of these 224736a7e2cSmrgvariables may be lost. In order to avoid this problem, you should set 225736a7e2cSmrgthem in the `configure' command line, using `VAR=value'. For example: 226736a7e2cSmrg 227736a7e2cSmrg ./configure CC=/usr/local2/bin/gcc 228736a7e2cSmrg 229736a7e2cSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 230736a7e2cSmrgoverridden in the site shell script). 231736a7e2cSmrg 232736a7e2cSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 233736a7e2cSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 234736a7e2cSmrg 235736a7e2cSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 236736a7e2cSmrg 237736a7e2cSmrg`configure' Invocation 238736a7e2cSmrg====================== 239736a7e2cSmrg 240736a7e2cSmrg `configure' recognizes the following options to control how it 241736a7e2cSmrgoperates. 242736a7e2cSmrg 243736a7e2cSmrg`--help' 244736a7e2cSmrg`-h' 245736a7e2cSmrg Print a summary of all of the options to `configure', and exit. 246736a7e2cSmrg 247736a7e2cSmrg`--help=short' 248736a7e2cSmrg`--help=recursive' 249736a7e2cSmrg Print a summary of the options unique to this package's 250736a7e2cSmrg `configure', and exit. The `short' variant lists options used 251736a7e2cSmrg only in the top level, while the `recursive' variant lists options 252736a7e2cSmrg also present in any nested packages. 253736a7e2cSmrg 254736a7e2cSmrg`--version' 255736a7e2cSmrg`-V' 256736a7e2cSmrg Print the version of Autoconf used to generate the `configure' 257736a7e2cSmrg script, and exit. 258736a7e2cSmrg 259736a7e2cSmrg`--cache-file=FILE' 260736a7e2cSmrg Enable the cache: use and save the results of the tests in FILE, 261736a7e2cSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 262736a7e2cSmrg disable caching. 263736a7e2cSmrg 264736a7e2cSmrg`--config-cache' 265736a7e2cSmrg`-C' 266736a7e2cSmrg Alias for `--cache-file=config.cache'. 267736a7e2cSmrg 268736a7e2cSmrg`--quiet' 269736a7e2cSmrg`--silent' 270736a7e2cSmrg`-q' 271736a7e2cSmrg Do not print messages saying which checks are being made. To 272736a7e2cSmrg suppress all normal output, redirect it to `/dev/null' (any error 273736a7e2cSmrg messages will still be shown). 274736a7e2cSmrg 275736a7e2cSmrg`--srcdir=DIR' 276736a7e2cSmrg Look for the package's source code in directory DIR. Usually 277736a7e2cSmrg `configure' can determine that directory automatically. 278736a7e2cSmrg 279736a7e2cSmrg`--prefix=DIR' 280736a7e2cSmrg Use DIR as the installation prefix. *Note Installation Names:: 281736a7e2cSmrg for more details, including other options available for fine-tuning 282736a7e2cSmrg the installation locations. 283736a7e2cSmrg 284736a7e2cSmrg`--no-create' 285736a7e2cSmrg`-n' 286736a7e2cSmrg Run the configure checks, but stop before creating any output 287736a7e2cSmrg files. 288736a7e2cSmrg 289736a7e2cSmrg`configure' also accepts some other, not widely useful, options. Run 290736a7e2cSmrg`configure --help' for more details. 291736a7e2cSmrg 292