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