114ddf674SmrgInstallation Instructions 214ddf674Smrg************************* 314ddf674Smrg 414ddf674SmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 514ddf674Smrg2006, 2007, 2008 Free Software Foundation, Inc. 614ddf674Smrg 714ddf674Smrg This file is free documentation; the Free Software Foundation gives 814ddf674Smrgunlimited permission to copy, distribute and modify it. 914ddf674Smrg 1014ddf674SmrgBasic Installation 1114ddf674Smrg================== 1214ddf674Smrg 1314ddf674Smrg Briefly, the shell commands `./configure; make; make install' should 1414ddf674Smrgconfigure, build, and install this package. The following 1514ddf674Smrgmore-detailed instructions are generic; see the `README' file for 1614ddf674Smrginstructions specific to this package. 1714ddf674Smrg 1814ddf674Smrg The `configure' shell script attempts to guess correct values for 1914ddf674Smrgvarious system-dependent variables used during compilation. It uses 2014ddf674Smrgthose values to create a `Makefile' in each directory of the package. 2114ddf674SmrgIt may also create one or more `.h' files containing system-dependent 2214ddf674Smrgdefinitions. Finally, it creates a shell script `config.status' that 2314ddf674Smrgyou can run in the future to recreate the current configuration, and a 2414ddf674Smrgfile `config.log' containing compiler output (useful mainly for 2514ddf674Smrgdebugging `configure'). 2614ddf674Smrg 2714ddf674Smrg It can also use an optional file (typically called `config.cache' 2814ddf674Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2914ddf674Smrgthe results of its tests to speed up reconfiguring. Caching is 3014ddf674Smrgdisabled by default to prevent problems with accidental use of stale 3114ddf674Smrgcache files. 3214ddf674Smrg 3314ddf674Smrg If you need to do unusual things to compile the package, please try 3414ddf674Smrgto figure out how `configure' could check whether to do them, and mail 3514ddf674Smrgdiffs or instructions to the address given in the `README' so they can 3614ddf674Smrgbe considered for the next release. If you are using the cache, and at 3714ddf674Smrgsome point `config.cache' contains results you don't want to keep, you 3814ddf674Smrgmay remove or edit it. 3914ddf674Smrg 4014ddf674Smrg The file `configure.ac' (or `configure.in') is used to create 4114ddf674Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 4214ddf674Smrgyou want to change it or regenerate `configure' using a newer version 4314ddf674Smrgof `autoconf'. 4414ddf674Smrg 4514ddf674SmrgThe simplest way to compile this package is: 4614ddf674Smrg 4714ddf674Smrg 1. `cd' to the directory containing the package's source code and type 4814ddf674Smrg `./configure' to configure the package for your system. 4914ddf674Smrg 5014ddf674Smrg Running `configure' might take a while. While running, it prints 5114ddf674Smrg some messages telling which features it is checking for. 5214ddf674Smrg 5314ddf674Smrg 2. Type `make' to compile the package. 5414ddf674Smrg 5514ddf674Smrg 3. Optionally, type `make check' to run any self-tests that come with 5614ddf674Smrg the package. 5714ddf674Smrg 5814ddf674Smrg 4. Type `make install' to install the programs and any data files and 5914ddf674Smrg documentation. 6014ddf674Smrg 6114ddf674Smrg 5. You can remove the program binaries and object files from the 6214ddf674Smrg source code directory by typing `make clean'. To also remove the 6314ddf674Smrg files that `configure' created (so you can compile the package for 6414ddf674Smrg a different kind of computer), type `make distclean'. There is 6514ddf674Smrg also a `make maintainer-clean' target, but that is intended mainly 6614ddf674Smrg for the package's developers. If you use it, you may have to get 6714ddf674Smrg all sorts of other programs in order to regenerate files that came 6814ddf674Smrg with the distribution. 6914ddf674Smrg 7014ddf674Smrg 6. Often, you can also type `make uninstall' to remove the installed 7114ddf674Smrg files again. 7214ddf674Smrg 7314ddf674SmrgCompilers and Options 7414ddf674Smrg===================== 7514ddf674Smrg 7614ddf674Smrg Some systems require unusual options for compilation or linking that 7714ddf674Smrgthe `configure' script does not know about. Run `./configure --help' 7814ddf674Smrgfor details on some of the pertinent environment variables. 7914ddf674Smrg 8014ddf674Smrg You can give `configure' initial values for configuration parameters 8114ddf674Smrgby setting variables in the command line or in the environment. Here 8214ddf674Smrgis an example: 8314ddf674Smrg 8414ddf674Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8514ddf674Smrg 8614ddf674Smrg *Note Defining Variables::, for more details. 8714ddf674Smrg 8814ddf674SmrgCompiling For Multiple Architectures 8914ddf674Smrg==================================== 9014ddf674Smrg 9114ddf674Smrg You can compile the package for more than one kind of computer at the 9214ddf674Smrgsame time, by placing the object files for each architecture in their 9314ddf674Smrgown directory. To do this, you can use GNU `make'. `cd' to the 9414ddf674Smrgdirectory where you want the object files and executables to go and run 9514ddf674Smrgthe `configure' script. `configure' automatically checks for the 9614ddf674Smrgsource code in the directory that `configure' is in and in `..'. 9714ddf674Smrg 9814ddf674Smrg With a non-GNU `make', it is safer to compile the package for one 9914ddf674Smrgarchitecture at a time in the source code directory. After you have 10014ddf674Smrginstalled the package for one architecture, use `make distclean' before 10114ddf674Smrgreconfiguring for another architecture. 10214ddf674Smrg 10314ddf674Smrg On MacOS X 10.5 and later systems, you can create libraries and 10414ddf674Smrgexecutables that work on multiple system types--known as "fat" or 10514ddf674Smrg"universal" binaries--by specifying multiple `-arch' options to the 10614ddf674Smrgcompiler but only a single `-arch' option to the preprocessor. Like 10714ddf674Smrgthis: 10814ddf674Smrg 10914ddf674Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11014ddf674Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11114ddf674Smrg CPP="gcc -E" CXXCPP="g++ -E" 11214ddf674Smrg 11314ddf674Smrg This is not guaranteed to produce working output in all cases, you 11414ddf674Smrgmay have to build one architecture at a time and combine the results 11514ddf674Smrgusing the `lipo' tool if you have problems. 11614ddf674Smrg 11714ddf674SmrgInstallation Names 11814ddf674Smrg================== 11914ddf674Smrg 12014ddf674Smrg By default, `make install' installs the package's commands under 12114ddf674Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12214ddf674Smrgcan specify an installation prefix other than `/usr/local' by giving 12314ddf674Smrg`configure' the option `--prefix=PREFIX'. 12414ddf674Smrg 12514ddf674Smrg You can specify separate installation prefixes for 12614ddf674Smrgarchitecture-specific files and architecture-independent files. If you 12714ddf674Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12814ddf674SmrgPREFIX as the prefix for installing programs and libraries. 12914ddf674SmrgDocumentation and other data files still use the regular prefix. 13014ddf674Smrg 13114ddf674Smrg In addition, if you use an unusual directory layout you can give 13214ddf674Smrgoptions like `--bindir=DIR' to specify different values for particular 13314ddf674Smrgkinds of files. Run `configure --help' for a list of the directories 13414ddf674Smrgyou can set and what kinds of files go in them. 13514ddf674Smrg 13614ddf674Smrg If the package supports it, you can cause programs to be installed 13714ddf674Smrgwith an extra prefix or suffix on their names by giving `configure' the 13814ddf674Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13914ddf674Smrg 14014ddf674SmrgOptional Features 14114ddf674Smrg================= 14214ddf674Smrg 14314ddf674Smrg Some packages pay attention to `--enable-FEATURE' options to 14414ddf674Smrg`configure', where FEATURE indicates an optional part of the package. 14514ddf674SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14614ddf674Smrgis something like `gnu-as' or `x' (for the X Window System). The 14714ddf674Smrg`README' should mention any `--enable-' and `--with-' options that the 14814ddf674Smrgpackage recognizes. 14914ddf674Smrg 15014ddf674Smrg For packages that use the X Window System, `configure' can usually 15114ddf674Smrgfind the X include and library files automatically, but if it doesn't, 15214ddf674Smrgyou can use the `configure' options `--x-includes=DIR' and 15314ddf674Smrg`--x-libraries=DIR' to specify their locations. 15414ddf674Smrg 15514ddf674SmrgParticular systems 15614ddf674Smrg================== 15714ddf674Smrg 15814ddf674Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15914ddf674SmrgCC is not installed, it is recommended to use the following options in 16014ddf674Smrgorder to use an ANSI C compiler: 16114ddf674Smrg 16214ddf674Smrg ./configure CC="cc -Ae" 16314ddf674Smrg 16414ddf674Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16514ddf674Smrg 16614ddf674Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16714ddf674Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16814ddf674Smrga workaround. If GNU CC is not installed, it is therefore recommended 16914ddf674Smrgto try 17014ddf674Smrg 17114ddf674Smrg ./configure CC="cc" 17214ddf674Smrg 17314ddf674Smrgand if that doesn't work, try 17414ddf674Smrg 17514ddf674Smrg ./configure CC="cc -nodtk" 17614ddf674Smrg 17714ddf674SmrgSpecifying the System Type 17814ddf674Smrg========================== 17914ddf674Smrg 18014ddf674Smrg There may be some features `configure' cannot figure out 18114ddf674Smrgautomatically, but needs to determine by the type of machine the package 18214ddf674Smrgwill run on. Usually, assuming the package is built to be run on the 18314ddf674Smrg_same_ architectures, `configure' can figure that out, but if it prints 18414ddf674Smrga message saying it cannot guess the machine type, give it the 18514ddf674Smrg`--build=TYPE' option. TYPE can either be a short name for the system 18614ddf674Smrgtype, such as `sun4', or a canonical name which has the form: 18714ddf674Smrg 18814ddf674Smrg CPU-COMPANY-SYSTEM 18914ddf674Smrg 19014ddf674Smrgwhere SYSTEM can have one of these forms: 19114ddf674Smrg 19214ddf674Smrg OS KERNEL-OS 19314ddf674Smrg 19414ddf674Smrg See the file `config.sub' for the possible values of each field. If 19514ddf674Smrg`config.sub' isn't included in this package, then this package doesn't 19614ddf674Smrgneed to know the machine type. 19714ddf674Smrg 19814ddf674Smrg If you are _building_ compiler tools for cross-compiling, you should 19914ddf674Smrguse the option `--target=TYPE' to select the type of system they will 20014ddf674Smrgproduce code for. 20114ddf674Smrg 20214ddf674Smrg If you want to _use_ a cross compiler, that generates code for a 20314ddf674Smrgplatform different from the build platform, you should specify the 20414ddf674Smrg"host" platform (i.e., that on which the generated programs will 20514ddf674Smrgeventually be run) with `--host=TYPE'. 20614ddf674Smrg 20714ddf674SmrgSharing Defaults 20814ddf674Smrg================ 20914ddf674Smrg 21014ddf674Smrg If you want to set default values for `configure' scripts to share, 21114ddf674Smrgyou can create a site shell script called `config.site' that gives 21214ddf674Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 21314ddf674Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21414ddf674Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21514ddf674Smrg`CONFIG_SITE' environment variable to the location of the site script. 21614ddf674SmrgA warning: not all `configure' scripts look for a site script. 21714ddf674Smrg 21814ddf674SmrgDefining Variables 21914ddf674Smrg================== 22014ddf674Smrg 22114ddf674Smrg Variables not defined in a site shell script can be set in the 22214ddf674Smrgenvironment passed to `configure'. However, some packages may run 22314ddf674Smrgconfigure again during the build, and the customized values of these 22414ddf674Smrgvariables may be lost. In order to avoid this problem, you should set 22514ddf674Smrgthem in the `configure' command line, using `VAR=value'. For example: 22614ddf674Smrg 22714ddf674Smrg ./configure CC=/usr/local2/bin/gcc 22814ddf674Smrg 22914ddf674Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 23014ddf674Smrgoverridden in the site shell script). 23114ddf674Smrg 23214ddf674SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23314ddf674Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23414ddf674Smrg 23514ddf674Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23614ddf674Smrg 23714ddf674Smrg`configure' Invocation 23814ddf674Smrg====================== 23914ddf674Smrg 24014ddf674Smrg `configure' recognizes the following options to control how it 24114ddf674Smrgoperates. 24214ddf674Smrg 24314ddf674Smrg`--help' 24414ddf674Smrg`-h' 24514ddf674Smrg Print a summary of all of the options to `configure', and exit. 24614ddf674Smrg 24714ddf674Smrg`--help=short' 24814ddf674Smrg`--help=recursive' 24914ddf674Smrg Print a summary of the options unique to this package's 25014ddf674Smrg `configure', and exit. The `short' variant lists options used 25114ddf674Smrg only in the top level, while the `recursive' variant lists options 25214ddf674Smrg also present in any nested packages. 25314ddf674Smrg 25414ddf674Smrg`--version' 25514ddf674Smrg`-V' 25614ddf674Smrg Print the version of Autoconf used to generate the `configure' 25714ddf674Smrg script, and exit. 25814ddf674Smrg 25914ddf674Smrg`--cache-file=FILE' 26014ddf674Smrg Enable the cache: use and save the results of the tests in FILE, 26114ddf674Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26214ddf674Smrg disable caching. 26314ddf674Smrg 26414ddf674Smrg`--config-cache' 26514ddf674Smrg`-C' 26614ddf674Smrg Alias for `--cache-file=config.cache'. 26714ddf674Smrg 26814ddf674Smrg`--quiet' 26914ddf674Smrg`--silent' 27014ddf674Smrg`-q' 27114ddf674Smrg Do not print messages saying which checks are being made. To 27214ddf674Smrg suppress all normal output, redirect it to `/dev/null' (any error 27314ddf674Smrg messages will still be shown). 27414ddf674Smrg 27514ddf674Smrg`--srcdir=DIR' 27614ddf674Smrg Look for the package's source code in directory DIR. Usually 27714ddf674Smrg `configure' can determine that directory automatically. 27814ddf674Smrg 27914ddf674Smrg`--prefix=DIR' 28014ddf674Smrg Use DIR as the installation prefix. *Note Installation Names:: 28114ddf674Smrg for more details, including other options available for fine-tuning 28214ddf674Smrg the installation locations. 28314ddf674Smrg 28414ddf674Smrg`--no-create' 28514ddf674Smrg`-n' 28614ddf674Smrg Run the configure checks, but stop before creating any output 28714ddf674Smrg files. 28814ddf674Smrg 28914ddf674Smrg`configure' also accepts some other, not widely useful, options. Run 29014ddf674Smrg`configure --help' for more details. 29114ddf674Smrg 292