INSTALL revision c3f70f0a
1c3f70f0aSmrgInstallation Instructions 2c3f70f0aSmrg************************* 3c3f70f0aSmrg 4c3f70f0aSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 5c3f70f0aSmrg2006, 2007, 2008 Free Software Foundation, Inc. 6c3f70f0aSmrg 7c3f70f0aSmrg This file is free documentation; the Free Software Foundation gives 8c3f70f0aSmrgunlimited permission to copy, distribute and modify it. 9c3f70f0aSmrg 10c3f70f0aSmrgBasic Installation 11c3f70f0aSmrg================== 12c3f70f0aSmrg 13c3f70f0aSmrg Briefly, the shell commands `./configure; make; make install' should 14c3f70f0aSmrgconfigure, build, and install this package. The following 15c3f70f0aSmrgmore-detailed instructions are generic; see the `README' file for 16c3f70f0aSmrginstructions specific to this package. 17c3f70f0aSmrg 18c3f70f0aSmrg The `configure' shell script attempts to guess correct values for 19c3f70f0aSmrgvarious system-dependent variables used during compilation. It uses 20c3f70f0aSmrgthose values to create a `Makefile' in each directory of the package. 21c3f70f0aSmrgIt may also create one or more `.h' files containing system-dependent 22c3f70f0aSmrgdefinitions. Finally, it creates a shell script `config.status' that 23c3f70f0aSmrgyou can run in the future to recreate the current configuration, and a 24c3f70f0aSmrgfile `config.log' containing compiler output (useful mainly for 25c3f70f0aSmrgdebugging `configure'). 26c3f70f0aSmrg 27c3f70f0aSmrg It can also use an optional file (typically called `config.cache' 28c3f70f0aSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 29c3f70f0aSmrgthe results of its tests to speed up reconfiguring. Caching is 30c3f70f0aSmrgdisabled by default to prevent problems with accidental use of stale 31c3f70f0aSmrgcache files. 32c3f70f0aSmrg 33c3f70f0aSmrg If you need to do unusual things to compile the package, please try 34c3f70f0aSmrgto figure out how `configure' could check whether to do them, and mail 35c3f70f0aSmrgdiffs or instructions to the address given in the `README' so they can 36c3f70f0aSmrgbe considered for the next release. If you are using the cache, and at 37c3f70f0aSmrgsome point `config.cache' contains results you don't want to keep, you 38c3f70f0aSmrgmay remove or edit it. 39c3f70f0aSmrg 40c3f70f0aSmrg The file `configure.ac' (or `configure.in') is used to create 41c3f70f0aSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 42c3f70f0aSmrgyou want to change it or regenerate `configure' using a newer version 43c3f70f0aSmrgof `autoconf'. 44c3f70f0aSmrg 45c3f70f0aSmrgThe simplest way to compile this package is: 46c3f70f0aSmrg 47c3f70f0aSmrg 1. `cd' to the directory containing the package's source code and type 48c3f70f0aSmrg `./configure' to configure the package for your system. 49c3f70f0aSmrg 50c3f70f0aSmrg Running `configure' might take a while. While running, it prints 51c3f70f0aSmrg some messages telling which features it is checking for. 52c3f70f0aSmrg 53c3f70f0aSmrg 2. Type `make' to compile the package. 54c3f70f0aSmrg 55c3f70f0aSmrg 3. Optionally, type `make check' to run any self-tests that come with 56c3f70f0aSmrg the package. 57c3f70f0aSmrg 58c3f70f0aSmrg 4. Type `make install' to install the programs and any data files and 59c3f70f0aSmrg documentation. 60c3f70f0aSmrg 61c3f70f0aSmrg 5. You can remove the program binaries and object files from the 62c3f70f0aSmrg source code directory by typing `make clean'. To also remove the 63c3f70f0aSmrg files that `configure' created (so you can compile the package for 64c3f70f0aSmrg a different kind of computer), type `make distclean'. There is 65c3f70f0aSmrg also a `make maintainer-clean' target, but that is intended mainly 66c3f70f0aSmrg for the package's developers. If you use it, you may have to get 67c3f70f0aSmrg all sorts of other programs in order to regenerate files that came 68c3f70f0aSmrg with the distribution. 69c3f70f0aSmrg 70c3f70f0aSmrg 6. Often, you can also type `make uninstall' to remove the installed 71c3f70f0aSmrg files again. 72c3f70f0aSmrg 73c3f70f0aSmrgCompilers and Options 74c3f70f0aSmrg===================== 75c3f70f0aSmrg 76c3f70f0aSmrg Some systems require unusual options for compilation or linking that 77c3f70f0aSmrgthe `configure' script does not know about. Run `./configure --help' 78c3f70f0aSmrgfor details on some of the pertinent environment variables. 79c3f70f0aSmrg 80c3f70f0aSmrg You can give `configure' initial values for configuration parameters 81c3f70f0aSmrgby setting variables in the command line or in the environment. Here 82c3f70f0aSmrgis an example: 83c3f70f0aSmrg 84c3f70f0aSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 85c3f70f0aSmrg 86c3f70f0aSmrg *Note Defining Variables::, for more details. 87c3f70f0aSmrg 88c3f70f0aSmrgCompiling For Multiple Architectures 89c3f70f0aSmrg==================================== 90c3f70f0aSmrg 91c3f70f0aSmrg You can compile the package for more than one kind of computer at the 92c3f70f0aSmrgsame time, by placing the object files for each architecture in their 93c3f70f0aSmrgown directory. To do this, you can use GNU `make'. `cd' to the 94c3f70f0aSmrgdirectory where you want the object files and executables to go and run 95c3f70f0aSmrgthe `configure' script. `configure' automatically checks for the 96c3f70f0aSmrgsource code in the directory that `configure' is in and in `..'. 97c3f70f0aSmrg 98c3f70f0aSmrg With a non-GNU `make', it is safer to compile the package for one 99c3f70f0aSmrgarchitecture at a time in the source code directory. After you have 100c3f70f0aSmrginstalled the package for one architecture, use `make distclean' before 101c3f70f0aSmrgreconfiguring for another architecture. 102c3f70f0aSmrg 103c3f70f0aSmrg On MacOS X 10.5 and later systems, you can create libraries and 104c3f70f0aSmrgexecutables that work on multiple system types--known as "fat" or 105c3f70f0aSmrg"universal" binaries--by specifying multiple `-arch' options to the 106c3f70f0aSmrgcompiler but only a single `-arch' option to the preprocessor. Like 107c3f70f0aSmrgthis: 108c3f70f0aSmrg 109c3f70f0aSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 110c3f70f0aSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 111c3f70f0aSmrg CPP="gcc -E" CXXCPP="g++ -E" 112c3f70f0aSmrg 113c3f70f0aSmrg This is not guaranteed to produce working output in all cases, you 114c3f70f0aSmrgmay have to build one architecture at a time and combine the results 115c3f70f0aSmrgusing the `lipo' tool if you have problems. 116c3f70f0aSmrg 117c3f70f0aSmrgInstallation Names 118c3f70f0aSmrg================== 119c3f70f0aSmrg 120c3f70f0aSmrg By default, `make install' installs the package's commands under 121c3f70f0aSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 122c3f70f0aSmrgcan specify an installation prefix other than `/usr/local' by giving 123c3f70f0aSmrg`configure' the option `--prefix=PREFIX'. 124c3f70f0aSmrg 125c3f70f0aSmrg You can specify separate installation prefixes for 126c3f70f0aSmrgarchitecture-specific files and architecture-independent files. If you 127c3f70f0aSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 128c3f70f0aSmrgPREFIX as the prefix for installing programs and libraries. 129c3f70f0aSmrgDocumentation and other data files still use the regular prefix. 130c3f70f0aSmrg 131c3f70f0aSmrg In addition, if you use an unusual directory layout you can give 132c3f70f0aSmrgoptions like `--bindir=DIR' to specify different values for particular 133c3f70f0aSmrgkinds of files. Run `configure --help' for a list of the directories 134c3f70f0aSmrgyou can set and what kinds of files go in them. 135c3f70f0aSmrg 136c3f70f0aSmrg If the package supports it, you can cause programs to be installed 137c3f70f0aSmrgwith an extra prefix or suffix on their names by giving `configure' the 138c3f70f0aSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 139c3f70f0aSmrg 140c3f70f0aSmrgOptional Features 141c3f70f0aSmrg================= 142c3f70f0aSmrg 143c3f70f0aSmrg Some packages pay attention to `--enable-FEATURE' options to 144c3f70f0aSmrg`configure', where FEATURE indicates an optional part of the package. 145c3f70f0aSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 146c3f70f0aSmrgis something like `gnu-as' or `x' (for the X Window System). The 147c3f70f0aSmrg`README' should mention any `--enable-' and `--with-' options that the 148c3f70f0aSmrgpackage recognizes. 149c3f70f0aSmrg 150c3f70f0aSmrg For packages that use the X Window System, `configure' can usually 151c3f70f0aSmrgfind the X include and library files automatically, but if it doesn't, 152c3f70f0aSmrgyou can use the `configure' options `--x-includes=DIR' and 153c3f70f0aSmrg`--x-libraries=DIR' to specify their locations. 154c3f70f0aSmrg 155c3f70f0aSmrgParticular systems 156c3f70f0aSmrg================== 157c3f70f0aSmrg 158c3f70f0aSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 159c3f70f0aSmrgCC is not installed, it is recommended to use the following options in 160c3f70f0aSmrgorder to use an ANSI C compiler: 161c3f70f0aSmrg 162c3f70f0aSmrg ./configure CC="cc -Ae" 163c3f70f0aSmrg 164c3f70f0aSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 165c3f70f0aSmrg 166c3f70f0aSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 167c3f70f0aSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 168c3f70f0aSmrga workaround. If GNU CC is not installed, it is therefore recommended 169c3f70f0aSmrgto try 170c3f70f0aSmrg 171c3f70f0aSmrg ./configure CC="cc" 172c3f70f0aSmrg 173c3f70f0aSmrgand if that doesn't work, try 174c3f70f0aSmrg 175c3f70f0aSmrg ./configure CC="cc -nodtk" 176c3f70f0aSmrg 177c3f70f0aSmrgSpecifying the System Type 178c3f70f0aSmrg========================== 179c3f70f0aSmrg 180c3f70f0aSmrg There may be some features `configure' cannot figure out 181c3f70f0aSmrgautomatically, but needs to determine by the type of machine the package 182c3f70f0aSmrgwill run on. Usually, assuming the package is built to be run on the 183c3f70f0aSmrg_same_ architectures, `configure' can figure that out, but if it prints 184c3f70f0aSmrga message saying it cannot guess the machine type, give it the 185c3f70f0aSmrg`--build=TYPE' option. TYPE can either be a short name for the system 186c3f70f0aSmrgtype, such as `sun4', or a canonical name which has the form: 187c3f70f0aSmrg 188c3f70f0aSmrg CPU-COMPANY-SYSTEM 189c3f70f0aSmrg 190c3f70f0aSmrgwhere SYSTEM can have one of these forms: 191c3f70f0aSmrg 192c3f70f0aSmrg OS KERNEL-OS 193c3f70f0aSmrg 194c3f70f0aSmrg See the file `config.sub' for the possible values of each field. If 195c3f70f0aSmrg`config.sub' isn't included in this package, then this package doesn't 196c3f70f0aSmrgneed to know the machine type. 197c3f70f0aSmrg 198c3f70f0aSmrg If you are _building_ compiler tools for cross-compiling, you should 199c3f70f0aSmrguse the option `--target=TYPE' to select the type of system they will 200c3f70f0aSmrgproduce code for. 201c3f70f0aSmrg 202c3f70f0aSmrg If you want to _use_ a cross compiler, that generates code for a 203c3f70f0aSmrgplatform different from the build platform, you should specify the 204c3f70f0aSmrg"host" platform (i.e., that on which the generated programs will 205c3f70f0aSmrgeventually be run) with `--host=TYPE'. 206c3f70f0aSmrg 207c3f70f0aSmrgSharing Defaults 208c3f70f0aSmrg================ 209c3f70f0aSmrg 210c3f70f0aSmrg If you want to set default values for `configure' scripts to share, 211c3f70f0aSmrgyou can create a site shell script called `config.site' that gives 212c3f70f0aSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 213c3f70f0aSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 214c3f70f0aSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 215c3f70f0aSmrg`CONFIG_SITE' environment variable to the location of the site script. 216c3f70f0aSmrgA warning: not all `configure' scripts look for a site script. 217c3f70f0aSmrg 218c3f70f0aSmrgDefining Variables 219c3f70f0aSmrg================== 220c3f70f0aSmrg 221c3f70f0aSmrg Variables not defined in a site shell script can be set in the 222c3f70f0aSmrgenvironment passed to `configure'. However, some packages may run 223c3f70f0aSmrgconfigure again during the build, and the customized values of these 224c3f70f0aSmrgvariables may be lost. In order to avoid this problem, you should set 225c3f70f0aSmrgthem in the `configure' command line, using `VAR=value'. For example: 226c3f70f0aSmrg 227c3f70f0aSmrg ./configure CC=/usr/local2/bin/gcc 228c3f70f0aSmrg 229c3f70f0aSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 230c3f70f0aSmrgoverridden in the site shell script). 231c3f70f0aSmrg 232c3f70f0aSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 233c3f70f0aSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 234c3f70f0aSmrg 235c3f70f0aSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 236c3f70f0aSmrg 237c3f70f0aSmrg`configure' Invocation 238c3f70f0aSmrg====================== 239c3f70f0aSmrg 240c3f70f0aSmrg `configure' recognizes the following options to control how it 241c3f70f0aSmrgoperates. 242c3f70f0aSmrg 243c3f70f0aSmrg`--help' 244c3f70f0aSmrg`-h' 245c3f70f0aSmrg Print a summary of all of the options to `configure', and exit. 246c3f70f0aSmrg 247c3f70f0aSmrg`--help=short' 248c3f70f0aSmrg`--help=recursive' 249c3f70f0aSmrg Print a summary of the options unique to this package's 250c3f70f0aSmrg `configure', and exit. The `short' variant lists options used 251c3f70f0aSmrg only in the top level, while the `recursive' variant lists options 252c3f70f0aSmrg also present in any nested packages. 253c3f70f0aSmrg 254c3f70f0aSmrg`--version' 255c3f70f0aSmrg`-V' 256c3f70f0aSmrg Print the version of Autoconf used to generate the `configure' 257c3f70f0aSmrg script, and exit. 258c3f70f0aSmrg 259c3f70f0aSmrg`--cache-file=FILE' 260c3f70f0aSmrg Enable the cache: use and save the results of the tests in FILE, 261c3f70f0aSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 262c3f70f0aSmrg disable caching. 263c3f70f0aSmrg 264c3f70f0aSmrg`--config-cache' 265c3f70f0aSmrg`-C' 266c3f70f0aSmrg Alias for `--cache-file=config.cache'. 267c3f70f0aSmrg 268c3f70f0aSmrg`--quiet' 269c3f70f0aSmrg`--silent' 270c3f70f0aSmrg`-q' 271c3f70f0aSmrg Do not print messages saying which checks are being made. To 272c3f70f0aSmrg suppress all normal output, redirect it to `/dev/null' (any error 273c3f70f0aSmrg messages will still be shown). 274c3f70f0aSmrg 275c3f70f0aSmrg`--srcdir=DIR' 276c3f70f0aSmrg Look for the package's source code in directory DIR. Usually 277c3f70f0aSmrg `configure' can determine that directory automatically. 278c3f70f0aSmrg 279c3f70f0aSmrg`--prefix=DIR' 280c3f70f0aSmrg Use DIR as the installation prefix. *Note Installation Names:: 281c3f70f0aSmrg for more details, including other options available for fine-tuning 282c3f70f0aSmrg the installation locations. 283c3f70f0aSmrg 284c3f70f0aSmrg`--no-create' 285c3f70f0aSmrg`-n' 286c3f70f0aSmrg Run the configure checks, but stop before creating any output 287c3f70f0aSmrg files. 288c3f70f0aSmrg 289c3f70f0aSmrg`configure' also accepts some other, not widely useful, options. Run 290c3f70f0aSmrg`configure --help' for more details. 291c3f70f0aSmrg 292