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