118781e08SmrgInstallation Instructions 218781e08Smrg************************* 318781e08Smrg 418781e08SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 518781e08SmrgInc. 618781e08Smrg 718781e08Smrg Copying and distribution of this file, with or without modification, 818781e08Smrgare permitted in any medium without royalty provided the copyright 918781e08Smrgnotice and this notice are preserved. This file is offered as-is, 1018781e08Smrgwithout warranty of any kind. 1118781e08Smrg 1218781e08SmrgBasic Installation 1318781e08Smrg================== 1418781e08Smrg 1518781e08Smrg Briefly, the shell commands `./configure; make; make install' should 1618781e08Smrgconfigure, build, and install this package. The following 1718781e08Smrgmore-detailed instructions are generic; see the `README' file for 1818781e08Smrginstructions specific to this package. Some packages provide this 1918781e08Smrg`INSTALL' file but do not implement all of the features documented 2018781e08Smrgbelow. The lack of an optional feature in a given package is not 2118781e08Smrgnecessarily a bug. More recommendations for GNU packages can be found 2218781e08Smrgin *note Makefile Conventions: (standards)Makefile Conventions. 2318781e08Smrg 2418781e08Smrg The `configure' shell script attempts to guess correct values for 2518781e08Smrgvarious system-dependent variables used during compilation. It uses 2618781e08Smrgthose values to create a `Makefile' in each directory of the package. 2718781e08SmrgIt may also create one or more `.h' files containing system-dependent 2818781e08Smrgdefinitions. Finally, it creates a shell script `config.status' that 2918781e08Smrgyou can run in the future to recreate the current configuration, and a 3018781e08Smrgfile `config.log' containing compiler output (useful mainly for 3118781e08Smrgdebugging `configure'). 3218781e08Smrg 3318781e08Smrg It can also use an optional file (typically called `config.cache' 3418781e08Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 3518781e08Smrgthe results of its tests to speed up reconfiguring. Caching is 3618781e08Smrgdisabled by default to prevent problems with accidental use of stale 3718781e08Smrgcache files. 3818781e08Smrg 3918781e08Smrg If you need to do unusual things to compile the package, please try 4018781e08Smrgto figure out how `configure' could check whether to do them, and mail 4118781e08Smrgdiffs or instructions to the address given in the `README' so they can 4218781e08Smrgbe considered for the next release. If you are using the cache, and at 4318781e08Smrgsome point `config.cache' contains results you don't want to keep, you 4418781e08Smrgmay remove or edit it. 4518781e08Smrg 4618781e08Smrg The file `configure.ac' (or `configure.in') is used to create 4718781e08Smrg`configure' by a program called `autoconf'. You need `configure.ac' if 4818781e08Smrgyou want to change it or regenerate `configure' using a newer version 4918781e08Smrgof `autoconf'. 5018781e08Smrg 5118781e08Smrg The simplest way to compile this package is: 5218781e08Smrg 5318781e08Smrg 1. `cd' to the directory containing the package's source code and type 5418781e08Smrg `./configure' to configure the package for your system. 5518781e08Smrg 5618781e08Smrg Running `configure' might take a while. While running, it prints 5718781e08Smrg some messages telling which features it is checking for. 5818781e08Smrg 5918781e08Smrg 2. Type `make' to compile the package. 6018781e08Smrg 6118781e08Smrg 3. Optionally, type `make check' to run any self-tests that come with 6218781e08Smrg the package, generally using the just-built uninstalled binaries. 6318781e08Smrg 6418781e08Smrg 4. Type `make install' to install the programs and any data files and 6518781e08Smrg documentation. When installing into a prefix owned by root, it is 6618781e08Smrg recommended that the package be configured and built as a regular 6718781e08Smrg user, and only the `make install' phase executed with root 6818781e08Smrg privileges. 6918781e08Smrg 7018781e08Smrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7118781e08Smrg this time using the binaries in their final installed location. 7218781e08Smrg This target does not install anything. Running this target as a 7318781e08Smrg regular user, particularly if the prior `make install' required 7418781e08Smrg root privileges, verifies that the installation completed 7518781e08Smrg correctly. 7618781e08Smrg 7718781e08Smrg 6. You can remove the program binaries and object files from the 7818781e08Smrg source code directory by typing `make clean'. To also remove the 7918781e08Smrg files that `configure' created (so you can compile the package for 8018781e08Smrg a different kind of computer), type `make distclean'. There is 8118781e08Smrg also a `make maintainer-clean' target, but that is intended mainly 8218781e08Smrg for the package's developers. If you use it, you may have to get 8318781e08Smrg all sorts of other programs in order to regenerate files that came 8418781e08Smrg with the distribution. 8518781e08Smrg 8618781e08Smrg 7. Often, you can also type `make uninstall' to remove the installed 8718781e08Smrg files again. In practice, not all packages have tested that 8818781e08Smrg uninstallation works correctly, even though it is required by the 8918781e08Smrg GNU Coding Standards. 9018781e08Smrg 9118781e08Smrg 8. Some packages, particularly those that use Automake, provide `make 9218781e08Smrg distcheck', which can by used by developers to test that all other 9318781e08Smrg targets like `make install' and `make uninstall' work correctly. 9418781e08Smrg This target is generally not run by end users. 9518781e08Smrg 9618781e08SmrgCompilers and Options 9718781e08Smrg===================== 9818781e08Smrg 9918781e08Smrg Some systems require unusual options for compilation or linking that 10018781e08Smrgthe `configure' script does not know about. Run `./configure --help' 10118781e08Smrgfor details on some of the pertinent environment variables. 10218781e08Smrg 10318781e08Smrg You can give `configure' initial values for configuration parameters 10418781e08Smrgby setting variables in the command line or in the environment. Here 10518781e08Smrgis an example: 10618781e08Smrg 10718781e08Smrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 10818781e08Smrg 10918781e08Smrg *Note Defining Variables::, for more details. 11018781e08Smrg 11118781e08SmrgCompiling For Multiple Architectures 11218781e08Smrg==================================== 11318781e08Smrg 11418781e08Smrg You can compile the package for more than one kind of computer at the 11518781e08Smrgsame time, by placing the object files for each architecture in their 11618781e08Smrgown directory. To do this, you can use GNU `make'. `cd' to the 11718781e08Smrgdirectory where you want the object files and executables to go and run 11818781e08Smrgthe `configure' script. `configure' automatically checks for the 11918781e08Smrgsource code in the directory that `configure' is in and in `..'. This 12018781e08Smrgis known as a "VPATH" build. 12118781e08Smrg 12218781e08Smrg With a non-GNU `make', it is safer to compile the package for one 12318781e08Smrgarchitecture at a time in the source code directory. After you have 12418781e08Smrginstalled the package for one architecture, use `make distclean' before 12518781e08Smrgreconfiguring for another architecture. 12618781e08Smrg 12718781e08Smrg On MacOS X 10.5 and later systems, you can create libraries and 12818781e08Smrgexecutables that work on multiple system types--known as "fat" or 12918781e08Smrg"universal" binaries--by specifying multiple `-arch' options to the 13018781e08Smrgcompiler but only a single `-arch' option to the preprocessor. Like 13118781e08Smrgthis: 13218781e08Smrg 13318781e08Smrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13418781e08Smrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13518781e08Smrg CPP="gcc -E" CXXCPP="g++ -E" 13618781e08Smrg 13718781e08Smrg This is not guaranteed to produce working output in all cases, you 13818781e08Smrgmay have to build one architecture at a time and combine the results 13918781e08Smrgusing the `lipo' tool if you have problems. 14018781e08Smrg 14118781e08SmrgInstallation Names 14218781e08Smrg================== 14318781e08Smrg 14418781e08Smrg By default, `make install' installs the package's commands under 14518781e08Smrg`/usr/local/bin', include files under `/usr/local/include', etc. You 14618781e08Smrgcan specify an installation prefix other than `/usr/local' by giving 14718781e08Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14818781e08Smrgabsolute file name. 14918781e08Smrg 15018781e08Smrg You can specify separate installation prefixes for 15118781e08Smrgarchitecture-specific files and architecture-independent files. If you 15218781e08Smrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 15318781e08SmrgPREFIX as the prefix for installing programs and libraries. 15418781e08SmrgDocumentation and other data files still use the regular prefix. 15518781e08Smrg 15618781e08Smrg In addition, if you use an unusual directory layout you can give 15718781e08Smrgoptions like `--bindir=DIR' to specify different values for particular 15818781e08Smrgkinds of files. Run `configure --help' for a list of the directories 15918781e08Smrgyou can set and what kinds of files go in them. In general, the 16018781e08Smrgdefault for these options is expressed in terms of `${prefix}', so that 16118781e08Smrgspecifying just `--prefix' will affect all of the other directory 16218781e08Smrgspecifications that were not explicitly provided. 16318781e08Smrg 16418781e08Smrg The most portable way to affect installation locations is to pass the 16518781e08Smrgcorrect locations to `configure'; however, many packages provide one or 16618781e08Smrgboth of the following shortcuts of passing variable assignments to the 16718781e08Smrg`make install' command line to change installation locations without 16818781e08Smrghaving to reconfigure or recompile. 16918781e08Smrg 17018781e08Smrg The first method involves providing an override variable for each 17118781e08Smrgaffected directory. For example, `make install 17218781e08Smrgprefix=/alternate/directory' will choose an alternate location for all 17318781e08Smrgdirectory configuration variables that were expressed in terms of 17418781e08Smrg`${prefix}'. Any directories that were specified during `configure', 17518781e08Smrgbut not in terms of `${prefix}', must each be overridden at install 17618781e08Smrgtime for the entire installation to be relocated. The approach of 17718781e08Smrgmakefile variable overrides for each directory variable is required by 17818781e08Smrgthe GNU Coding Standards, and ideally causes no recompilation. 17918781e08SmrgHowever, some platforms have known limitations with the semantics of 18018781e08Smrgshared libraries that end up requiring recompilation when using this 18118781e08Smrgmethod, particularly noticeable in packages that use GNU Libtool. 18218781e08Smrg 18318781e08Smrg The second method involves providing the `DESTDIR' variable. For 18418781e08Smrgexample, `make install DESTDIR=/alternate/directory' will prepend 18518781e08Smrg`/alternate/directory' before all installation names. The approach of 18618781e08Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18718781e08Smrgdoes not work on platforms that have drive letters. On the other hand, 18818781e08Smrgit does better at avoiding recompilation issues, and works well even 18918781e08Smrgwhen some directory options were not specified in terms of `${prefix}' 19018781e08Smrgat `configure' time. 19118781e08Smrg 19218781e08SmrgOptional Features 19318781e08Smrg================= 19418781e08Smrg 19518781e08Smrg If the package supports it, you can cause programs to be installed 19618781e08Smrgwith an extra prefix or suffix on their names by giving `configure' the 19718781e08Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 19818781e08Smrg 19918781e08Smrg Some packages pay attention to `--enable-FEATURE' options to 20018781e08Smrg`configure', where FEATURE indicates an optional part of the package. 20118781e08SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 20218781e08Smrgis something like `gnu-as' or `x' (for the X Window System). The 20318781e08Smrg`README' should mention any `--enable-' and `--with-' options that the 20418781e08Smrgpackage recognizes. 20518781e08Smrg 20618781e08Smrg For packages that use the X Window System, `configure' can usually 20718781e08Smrgfind the X include and library files automatically, but if it doesn't, 20818781e08Smrgyou can use the `configure' options `--x-includes=DIR' and 20918781e08Smrg`--x-libraries=DIR' to specify their locations. 21018781e08Smrg 21118781e08Smrg Some packages offer the ability to configure how verbose the 21218781e08Smrgexecution of `make' will be. For these packages, running `./configure 21318781e08Smrg--enable-silent-rules' sets the default to minimal output, which can be 21418781e08Smrgoverridden with `make V=1'; while running `./configure 21518781e08Smrg--disable-silent-rules' sets the default to verbose, which can be 21618781e08Smrgoverridden with `make V=0'. 21718781e08Smrg 21818781e08SmrgParticular systems 21918781e08Smrg================== 22018781e08Smrg 22118781e08Smrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 22218781e08SmrgCC is not installed, it is recommended to use the following options in 22318781e08Smrgorder to use an ANSI C compiler: 22418781e08Smrg 22518781e08Smrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 22618781e08Smrg 22718781e08Smrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 22818781e08Smrg 22918781e08Smrg HP-UX `make' updates targets which have the same time stamps as 23018781e08Smrgtheir prerequisites, which makes it generally unusable when shipped 23118781e08Smrggenerated files such as `configure' are involved. Use GNU `make' 23218781e08Smrginstead. 23318781e08Smrg 23418781e08Smrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 23518781e08Smrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 23618781e08Smrga workaround. If GNU CC is not installed, it is therefore recommended 23718781e08Smrgto try 23818781e08Smrg 23918781e08Smrg ./configure CC="cc" 24018781e08Smrg 24118781e08Smrgand if that doesn't work, try 24218781e08Smrg 24318781e08Smrg ./configure CC="cc -nodtk" 24418781e08Smrg 24518781e08Smrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24618781e08Smrgdirectory contains several dysfunctional programs; working variants of 24718781e08Smrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24818781e08Smrgin your `PATH', put it _after_ `/usr/bin'. 24918781e08Smrg 25018781e08Smrg On Haiku, software installed for all users goes in `/boot/common', 25118781e08Smrgnot `/usr/local'. It is recommended to use the following options: 25218781e08Smrg 25318781e08Smrg ./configure --prefix=/boot/common 25418781e08Smrg 25518781e08SmrgSpecifying the System Type 25618781e08Smrg========================== 25718781e08Smrg 25818781e08Smrg There may be some features `configure' cannot figure out 25918781e08Smrgautomatically, but needs to determine by the type of machine the package 26018781e08Smrgwill run on. Usually, assuming the package is built to be run on the 26118781e08Smrg_same_ architectures, `configure' can figure that out, but if it prints 26218781e08Smrga message saying it cannot guess the machine type, give it the 26318781e08Smrg`--build=TYPE' option. TYPE can either be a short name for the system 26418781e08Smrgtype, such as `sun4', or a canonical name which has the form: 26518781e08Smrg 26618781e08Smrg CPU-COMPANY-SYSTEM 26718781e08Smrg 26818781e08Smrgwhere SYSTEM can have one of these forms: 26918781e08Smrg 27018781e08Smrg OS 27118781e08Smrg KERNEL-OS 27218781e08Smrg 27318781e08Smrg See the file `config.sub' for the possible values of each field. If 27418781e08Smrg`config.sub' isn't included in this package, then this package doesn't 27518781e08Smrgneed to know the machine type. 27618781e08Smrg 27718781e08Smrg If you are _building_ compiler tools for cross-compiling, you should 27818781e08Smrguse the option `--target=TYPE' to select the type of system they will 27918781e08Smrgproduce code for. 28018781e08Smrg 28118781e08Smrg If you want to _use_ a cross compiler, that generates code for a 28218781e08Smrgplatform different from the build platform, you should specify the 28318781e08Smrg"host" platform (i.e., that on which the generated programs will 28418781e08Smrgeventually be run) with `--host=TYPE'. 28518781e08Smrg 28618781e08SmrgSharing Defaults 28718781e08Smrg================ 28818781e08Smrg 28918781e08Smrg If you want to set default values for `configure' scripts to share, 29018781e08Smrgyou can create a site shell script called `config.site' that gives 29118781e08Smrgdefault values for variables like `CC', `cache_file', and `prefix'. 29218781e08Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 29318781e08Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 29418781e08Smrg`CONFIG_SITE' environment variable to the location of the site script. 29518781e08SmrgA warning: not all `configure' scripts look for a site script. 29618781e08Smrg 29718781e08SmrgDefining Variables 29818781e08Smrg================== 29918781e08Smrg 30018781e08Smrg Variables not defined in a site shell script can be set in the 30118781e08Smrgenvironment passed to `configure'. However, some packages may run 30218781e08Smrgconfigure again during the build, and the customized values of these 30318781e08Smrgvariables may be lost. In order to avoid this problem, you should set 30418781e08Smrgthem in the `configure' command line, using `VAR=value'. For example: 30518781e08Smrg 30618781e08Smrg ./configure CC=/usr/local2/bin/gcc 30718781e08Smrg 30818781e08Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 30918781e08Smrgoverridden in the site shell script). 31018781e08Smrg 31118781e08SmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 31218781e08Smrgan Autoconf bug. Until the bug is fixed you can use this workaround: 31318781e08Smrg 31418781e08Smrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 31518781e08Smrg 31618781e08Smrg`configure' Invocation 31718781e08Smrg====================== 31818781e08Smrg 31918781e08Smrg `configure' recognizes the following options to control how it 32018781e08Smrgoperates. 32118781e08Smrg 32218781e08Smrg`--help' 32318781e08Smrg`-h' 32418781e08Smrg Print a summary of all of the options to `configure', and exit. 32518781e08Smrg 32618781e08Smrg`--help=short' 32718781e08Smrg`--help=recursive' 32818781e08Smrg Print a summary of the options unique to this package's 32918781e08Smrg `configure', and exit. The `short' variant lists options used 33018781e08Smrg only in the top level, while the `recursive' variant lists options 33118781e08Smrg also present in any nested packages. 33218781e08Smrg 33318781e08Smrg`--version' 33418781e08Smrg`-V' 33518781e08Smrg Print the version of Autoconf used to generate the `configure' 33618781e08Smrg script, and exit. 33718781e08Smrg 33818781e08Smrg`--cache-file=FILE' 33918781e08Smrg Enable the cache: use and save the results of the tests in FILE, 34018781e08Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 34118781e08Smrg disable caching. 34218781e08Smrg 34318781e08Smrg`--config-cache' 34418781e08Smrg`-C' 34518781e08Smrg Alias for `--cache-file=config.cache'. 34618781e08Smrg 34718781e08Smrg`--quiet' 34818781e08Smrg`--silent' 34918781e08Smrg`-q' 35018781e08Smrg Do not print messages saying which checks are being made. To 35118781e08Smrg suppress all normal output, redirect it to `/dev/null' (any error 35218781e08Smrg messages will still be shown). 35318781e08Smrg 35418781e08Smrg`--srcdir=DIR' 35518781e08Smrg Look for the package's source code in directory DIR. Usually 35618781e08Smrg `configure' can determine that directory automatically. 35718781e08Smrg 35818781e08Smrg`--prefix=DIR' 35918781e08Smrg Use DIR as the installation prefix. *note Installation Names:: 36018781e08Smrg for more details, including other options available for fine-tuning 36118781e08Smrg the installation locations. 36218781e08Smrg 36318781e08Smrg`--no-create' 36418781e08Smrg`-n' 36518781e08Smrg Run the configure checks, but stop before creating any output 36618781e08Smrg files. 36718781e08Smrg 36818781e08Smrg`configure' also accepts some other, not widely useful, options. Run 36918781e08Smrg`configure --help' for more details. 37018781e08Smrg 371