1145f796fSmrgInstallation Instructions 2145f796fSmrg************************* 3145f796fSmrg 4145f796fSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 5145f796fSmrg2006, 2007, 2008 Free Software Foundation, Inc. 6145f796fSmrg 7145f796fSmrg This file is free documentation; the Free Software Foundation gives 8145f796fSmrgunlimited permission to copy, distribute and modify it. 9145f796fSmrg 10145f796fSmrgBasic Installation 11145f796fSmrg================== 12145f796fSmrg 13145f796fSmrg Briefly, the shell commands `./configure; make; make install' should 14145f796fSmrgconfigure, build, and install this package. The following 15145f796fSmrgmore-detailed instructions are generic; see the `README' file for 16145f796fSmrginstructions specific to this package. 17145f796fSmrg 18145f796fSmrg The `configure' shell script attempts to guess correct values for 19145f796fSmrgvarious system-dependent variables used during compilation. It uses 20145f796fSmrgthose values to create a `Makefile' in each directory of the package. 21145f796fSmrgIt may also create one or more `.h' files containing system-dependent 22145f796fSmrgdefinitions. Finally, it creates a shell script `config.status' that 23145f796fSmrgyou can run in the future to recreate the current configuration, and a 24145f796fSmrgfile `config.log' containing compiler output (useful mainly for 25145f796fSmrgdebugging `configure'). 26145f796fSmrg 27145f796fSmrg It can also use an optional file (typically called `config.cache' 28145f796fSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 29145f796fSmrgthe results of its tests to speed up reconfiguring. Caching is 30145f796fSmrgdisabled by default to prevent problems with accidental use of stale 31145f796fSmrgcache files. 32145f796fSmrg 33145f796fSmrg If you need to do unusual things to compile the package, please try 34145f796fSmrgto figure out how `configure' could check whether to do them, and mail 35145f796fSmrgdiffs or instructions to the address given in the `README' so they can 36145f796fSmrgbe considered for the next release. If you are using the cache, and at 37145f796fSmrgsome point `config.cache' contains results you don't want to keep, you 38145f796fSmrgmay remove or edit it. 39145f796fSmrg 40145f796fSmrg The file `configure.ac' (or `configure.in') is used to create 41145f796fSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 42145f796fSmrgyou want to change it or regenerate `configure' using a newer version 43145f796fSmrgof `autoconf'. 44145f796fSmrg 45145f796fSmrgThe simplest way to compile this package is: 46145f796fSmrg 47145f796fSmrg 1. `cd' to the directory containing the package's source code and type 48145f796fSmrg `./configure' to configure the package for your system. 49145f796fSmrg 50145f796fSmrg Running `configure' might take a while. While running, it prints 51145f796fSmrg some messages telling which features it is checking for. 52145f796fSmrg 53145f796fSmrg 2. Type `make' to compile the package. 54145f796fSmrg 55145f796fSmrg 3. Optionally, type `make check' to run any self-tests that come with 56145f796fSmrg the package. 57145f796fSmrg 58145f796fSmrg 4. Type `make install' to install the programs and any data files and 59145f796fSmrg documentation. 60145f796fSmrg 61145f796fSmrg 5. You can remove the program binaries and object files from the 62145f796fSmrg source code directory by typing `make clean'. To also remove the 63145f796fSmrg files that `configure' created (so you can compile the package for 64145f796fSmrg a different kind of computer), type `make distclean'. There is 65145f796fSmrg also a `make maintainer-clean' target, but that is intended mainly 66145f796fSmrg for the package's developers. If you use it, you may have to get 67145f796fSmrg all sorts of other programs in order to regenerate files that came 68145f796fSmrg with the distribution. 69145f796fSmrg 70145f796fSmrg 6. Often, you can also type `make uninstall' to remove the installed 71145f796fSmrg files again. 72145f796fSmrg 73145f796fSmrgCompilers and Options 74145f796fSmrg===================== 75145f796fSmrg 76145f796fSmrg Some systems require unusual options for compilation or linking that 77145f796fSmrgthe `configure' script does not know about. Run `./configure --help' 78145f796fSmrgfor details on some of the pertinent environment variables. 79145f796fSmrg 80145f796fSmrg You can give `configure' initial values for configuration parameters 81145f796fSmrgby setting variables in the command line or in the environment. Here 82145f796fSmrgis an example: 83145f796fSmrg 84145f796fSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 85145f796fSmrg 86145f796fSmrg *Note Defining Variables::, for more details. 87145f796fSmrg 88145f796fSmrgCompiling For Multiple Architectures 89145f796fSmrg==================================== 90145f796fSmrg 91145f796fSmrg You can compile the package for more than one kind of computer at the 92145f796fSmrgsame time, by placing the object files for each architecture in their 93145f796fSmrgown directory. To do this, you can use GNU `make'. `cd' to the 94145f796fSmrgdirectory where you want the object files and executables to go and run 95145f796fSmrgthe `configure' script. `configure' automatically checks for the 96145f796fSmrgsource code in the directory that `configure' is in and in `..'. 97145f796fSmrg 98145f796fSmrg With a non-GNU `make', it is safer to compile the package for one 99145f796fSmrgarchitecture at a time in the source code directory. After you have 100145f796fSmrginstalled the package for one architecture, use `make distclean' before 101145f796fSmrgreconfiguring for another architecture. 102145f796fSmrg 103145f796fSmrg On MacOS X 10.5 and later systems, you can create libraries and 104145f796fSmrgexecutables that work on multiple system types--known as "fat" or 105145f796fSmrg"universal" binaries--by specifying multiple `-arch' options to the 106145f796fSmrgcompiler but only a single `-arch' option to the preprocessor. Like 107145f796fSmrgthis: 108145f796fSmrg 109145f796fSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 110145f796fSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 111145f796fSmrg CPP="gcc -E" CXXCPP="g++ -E" 112145f796fSmrg 113145f796fSmrg This is not guaranteed to produce working output in all cases, you 114145f796fSmrgmay have to build one architecture at a time and combine the results 115145f796fSmrgusing the `lipo' tool if you have problems. 116145f796fSmrg 117145f796fSmrgInstallation Names 118145f796fSmrg================== 119145f796fSmrg 120145f796fSmrg By default, `make install' installs the package's commands under 121145f796fSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 122145f796fSmrgcan specify an installation prefix other than `/usr/local' by giving 123145f796fSmrg`configure' the option `--prefix=PREFIX'. 124145f796fSmrg 125145f796fSmrg You can specify separate installation prefixes for 126145f796fSmrgarchitecture-specific files and architecture-independent files. If you 127145f796fSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 128145f796fSmrgPREFIX as the prefix for installing programs and libraries. 129145f796fSmrgDocumentation and other data files still use the regular prefix. 130145f796fSmrg 131145f796fSmrg In addition, if you use an unusual directory layout you can give 132145f796fSmrgoptions like `--bindir=DIR' to specify different values for particular 133145f796fSmrgkinds of files. Run `configure --help' for a list of the directories 134145f796fSmrgyou can set and what kinds of files go in them. 135145f796fSmrg 136145f796fSmrg If the package supports it, you can cause programs to be installed 137145f796fSmrgwith an extra prefix or suffix on their names by giving `configure' the 138145f796fSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 139145f796fSmrg 140145f796fSmrgOptional Features 141145f796fSmrg================= 142145f796fSmrg 143145f796fSmrg Some packages pay attention to `--enable-FEATURE' options to 144145f796fSmrg`configure', where FEATURE indicates an optional part of the package. 145145f796fSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 146145f796fSmrgis something like `gnu-as' or `x' (for the X Window System). The 147145f796fSmrg`README' should mention any `--enable-' and `--with-' options that the 148145f796fSmrgpackage recognizes. 149145f796fSmrg 150145f796fSmrg For packages that use the X Window System, `configure' can usually 151145f796fSmrgfind the X include and library files automatically, but if it doesn't, 152145f796fSmrgyou can use the `configure' options `--x-includes=DIR' and 153145f796fSmrg`--x-libraries=DIR' to specify their locations. 154145f796fSmrg 155145f796fSmrgParticular systems 156145f796fSmrg================== 157145f796fSmrg 158145f796fSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 159145f796fSmrgCC is not installed, it is recommended to use the following options in 160145f796fSmrgorder to use an ANSI C compiler: 161145f796fSmrg 162145f796fSmrg ./configure CC="cc -Ae" 163145f796fSmrg 164145f796fSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 165145f796fSmrg 166145f796fSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 167145f796fSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 168145f796fSmrga workaround. If GNU CC is not installed, it is therefore recommended 169145f796fSmrgto try 170145f796fSmrg 171145f796fSmrg ./configure CC="cc" 172145f796fSmrg 173145f796fSmrgand if that doesn't work, try 174145f796fSmrg 175145f796fSmrg ./configure CC="cc -nodtk" 176145f796fSmrg 177145f796fSmrgSpecifying the System Type 178145f796fSmrg========================== 179145f796fSmrg 180145f796fSmrg There may be some features `configure' cannot figure out 181145f796fSmrgautomatically, but needs to determine by the type of machine the package 182145f796fSmrgwill run on. Usually, assuming the package is built to be run on the 183145f796fSmrg_same_ architectures, `configure' can figure that out, but if it prints 184145f796fSmrga message saying it cannot guess the machine type, give it the 185145f796fSmrg`--build=TYPE' option. TYPE can either be a short name for the system 186145f796fSmrgtype, such as `sun4', or a canonical name which has the form: 187145f796fSmrg 188145f796fSmrg CPU-COMPANY-SYSTEM 189145f796fSmrg 190145f796fSmrgwhere SYSTEM can have one of these forms: 191145f796fSmrg 192145f796fSmrg OS KERNEL-OS 193145f796fSmrg 194145f796fSmrg See the file `config.sub' for the possible values of each field. If 195145f796fSmrg`config.sub' isn't included in this package, then this package doesn't 196145f796fSmrgneed to know the machine type. 197145f796fSmrg 198145f796fSmrg If you are _building_ compiler tools for cross-compiling, you should 199145f796fSmrguse the option `--target=TYPE' to select the type of system they will 200145f796fSmrgproduce code for. 201145f796fSmrg 202145f796fSmrg If you want to _use_ a cross compiler, that generates code for a 203145f796fSmrgplatform different from the build platform, you should specify the 204145f796fSmrg"host" platform (i.e., that on which the generated programs will 205145f796fSmrgeventually be run) with `--host=TYPE'. 206145f796fSmrg 207145f796fSmrgSharing Defaults 208145f796fSmrg================ 209145f796fSmrg 210145f796fSmrg If you want to set default values for `configure' scripts to share, 211145f796fSmrgyou can create a site shell script called `config.site' that gives 212145f796fSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 213145f796fSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 214145f796fSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 215145f796fSmrg`CONFIG_SITE' environment variable to the location of the site script. 216145f796fSmrgA warning: not all `configure' scripts look for a site script. 217145f796fSmrg 218145f796fSmrgDefining Variables 219145f796fSmrg================== 220145f796fSmrg 221145f796fSmrg Variables not defined in a site shell script can be set in the 222145f796fSmrgenvironment passed to `configure'. However, some packages may run 223145f796fSmrgconfigure again during the build, and the customized values of these 224145f796fSmrgvariables may be lost. In order to avoid this problem, you should set 225145f796fSmrgthem in the `configure' command line, using `VAR=value'. For example: 226145f796fSmrg 227145f796fSmrg ./configure CC=/usr/local2/bin/gcc 228145f796fSmrg 229145f796fSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 230145f796fSmrgoverridden in the site shell script). 231145f796fSmrg 232145f796fSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 233145f796fSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 234145f796fSmrg 235145f796fSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 236145f796fSmrg 237145f796fSmrg`configure' Invocation 238145f796fSmrg====================== 239145f796fSmrg 240145f796fSmrg `configure' recognizes the following options to control how it 241145f796fSmrgoperates. 242145f796fSmrg 243145f796fSmrg`--help' 244145f796fSmrg`-h' 245145f796fSmrg Print a summary of all of the options to `configure', and exit. 246145f796fSmrg 247145f796fSmrg`--help=short' 248145f796fSmrg`--help=recursive' 249145f796fSmrg Print a summary of the options unique to this package's 250145f796fSmrg `configure', and exit. The `short' variant lists options used 251145f796fSmrg only in the top level, while the `recursive' variant lists options 252145f796fSmrg also present in any nested packages. 253145f796fSmrg 254145f796fSmrg`--version' 255145f796fSmrg`-V' 256145f796fSmrg Print the version of Autoconf used to generate the `configure' 257145f796fSmrg script, and exit. 258145f796fSmrg 259145f796fSmrg`--cache-file=FILE' 260145f796fSmrg Enable the cache: use and save the results of the tests in FILE, 261145f796fSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 262145f796fSmrg disable caching. 263145f796fSmrg 264145f796fSmrg`--config-cache' 265145f796fSmrg`-C' 266145f796fSmrg Alias for `--cache-file=config.cache'. 267145f796fSmrg 268145f796fSmrg`--quiet' 269145f796fSmrg`--silent' 270145f796fSmrg`-q' 271145f796fSmrg Do not print messages saying which checks are being made. To 272145f796fSmrg suppress all normal output, redirect it to `/dev/null' (any error 273145f796fSmrg messages will still be shown). 274145f796fSmrg 275145f796fSmrg`--srcdir=DIR' 276145f796fSmrg Look for the package's source code in directory DIR. Usually 277145f796fSmrg `configure' can determine that directory automatically. 278145f796fSmrg 279145f796fSmrg`--prefix=DIR' 280145f796fSmrg Use DIR as the installation prefix. *Note Installation Names:: 281145f796fSmrg for more details, including other options available for fine-tuning 282145f796fSmrg the installation locations. 283145f796fSmrg 284145f796fSmrg`--no-create' 285145f796fSmrg`-n' 286145f796fSmrg Run the configure checks, but stop before creating any output 287145f796fSmrg files. 288145f796fSmrg 289145f796fSmrg`configure' also accepts some other, not widely useful, options. Run 290145f796fSmrg`configure --help' for more details. 291145f796fSmrg 292