193249ebfSmrgInstallation Instructions 293249ebfSmrg************************* 393249ebfSmrg 493249ebfSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 593249ebfSmrgInc. 693249ebfSmrg 793249ebfSmrg Copying and distribution of this file, with or without modification, 893249ebfSmrgare permitted in any medium without royalty provided the copyright 993249ebfSmrgnotice and this notice are preserved. This file is offered as-is, 1093249ebfSmrgwithout warranty of any kind. 1193249ebfSmrg 1293249ebfSmrgBasic Installation 1393249ebfSmrg================== 1493249ebfSmrg 1593249ebfSmrg Briefly, the shell commands `./configure; make; make install' should 1693249ebfSmrgconfigure, build, and install this package. The following 1793249ebfSmrgmore-detailed instructions are generic; see the `README' file for 1893249ebfSmrginstructions specific to this package. Some packages provide this 1993249ebfSmrg`INSTALL' file but do not implement all of the features documented 2093249ebfSmrgbelow. The lack of an optional feature in a given package is not 2193249ebfSmrgnecessarily a bug. More recommendations for GNU packages can be found 2293249ebfSmrgin *note Makefile Conventions: (standards)Makefile Conventions. 2393249ebfSmrg 2493249ebfSmrg The `configure' shell script attempts to guess correct values for 2593249ebfSmrgvarious system-dependent variables used during compilation. It uses 2693249ebfSmrgthose values to create a `Makefile' in each directory of the package. 2793249ebfSmrgIt may also create one or more `.h' files containing system-dependent 2893249ebfSmrgdefinitions. Finally, it creates a shell script `config.status' that 2993249ebfSmrgyou can run in the future to recreate the current configuration, and a 3093249ebfSmrgfile `config.log' containing compiler output (useful mainly for 3193249ebfSmrgdebugging `configure'). 3293249ebfSmrg 3393249ebfSmrg It can also use an optional file (typically called `config.cache' 3493249ebfSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 3593249ebfSmrgthe results of its tests to speed up reconfiguring. Caching is 3693249ebfSmrgdisabled by default to prevent problems with accidental use of stale 3793249ebfSmrgcache files. 3893249ebfSmrg 3993249ebfSmrg If you need to do unusual things to compile the package, please try 4093249ebfSmrgto figure out how `configure' could check whether to do them, and mail 4193249ebfSmrgdiffs or instructions to the address given in the `README' so they can 4293249ebfSmrgbe considered for the next release. If you are using the cache, and at 4393249ebfSmrgsome point `config.cache' contains results you don't want to keep, you 4493249ebfSmrgmay remove or edit it. 4593249ebfSmrg 4693249ebfSmrg The file `configure.ac' (or `configure.in') is used to create 4793249ebfSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4893249ebfSmrgyou want to change it or regenerate `configure' using a newer version 4993249ebfSmrgof `autoconf'. 5093249ebfSmrg 5193249ebfSmrg The simplest way to compile this package is: 5293249ebfSmrg 5393249ebfSmrg 1. `cd' to the directory containing the package's source code and type 5493249ebfSmrg `./configure' to configure the package for your system. 5593249ebfSmrg 5693249ebfSmrg Running `configure' might take a while. While running, it prints 5793249ebfSmrg some messages telling which features it is checking for. 5893249ebfSmrg 5993249ebfSmrg 2. Type `make' to compile the package. 6093249ebfSmrg 6193249ebfSmrg 3. Optionally, type `make check' to run any self-tests that come with 6293249ebfSmrg the package, generally using the just-built uninstalled binaries. 6393249ebfSmrg 6493249ebfSmrg 4. Type `make install' to install the programs and any data files and 6593249ebfSmrg documentation. When installing into a prefix owned by root, it is 6693249ebfSmrg recommended that the package be configured and built as a regular 6793249ebfSmrg user, and only the `make install' phase executed with root 6893249ebfSmrg privileges. 6993249ebfSmrg 7093249ebfSmrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7193249ebfSmrg this time using the binaries in their final installed location. 7293249ebfSmrg This target does not install anything. Running this target as a 7393249ebfSmrg regular user, particularly if the prior `make install' required 7493249ebfSmrg root privileges, verifies that the installation completed 7593249ebfSmrg correctly. 7693249ebfSmrg 7793249ebfSmrg 6. You can remove the program binaries and object files from the 7893249ebfSmrg source code directory by typing `make clean'. To also remove the 7993249ebfSmrg files that `configure' created (so you can compile the package for 8093249ebfSmrg a different kind of computer), type `make distclean'. There is 8193249ebfSmrg also a `make maintainer-clean' target, but that is intended mainly 8293249ebfSmrg for the package's developers. If you use it, you may have to get 8393249ebfSmrg all sorts of other programs in order to regenerate files that came 8493249ebfSmrg with the distribution. 8593249ebfSmrg 8693249ebfSmrg 7. Often, you can also type `make uninstall' to remove the installed 8793249ebfSmrg files again. In practice, not all packages have tested that 8893249ebfSmrg uninstallation works correctly, even though it is required by the 8993249ebfSmrg GNU Coding Standards. 9093249ebfSmrg 9193249ebfSmrg 8. Some packages, particularly those that use Automake, provide `make 9293249ebfSmrg distcheck', which can by used by developers to test that all other 9393249ebfSmrg targets like `make install' and `make uninstall' work correctly. 9493249ebfSmrg This target is generally not run by end users. 9593249ebfSmrg 9693249ebfSmrgCompilers and Options 9793249ebfSmrg===================== 9893249ebfSmrg 9993249ebfSmrg Some systems require unusual options for compilation or linking that 10093249ebfSmrgthe `configure' script does not know about. Run `./configure --help' 10193249ebfSmrgfor details on some of the pertinent environment variables. 10293249ebfSmrg 10393249ebfSmrg You can give `configure' initial values for configuration parameters 10493249ebfSmrgby setting variables in the command line or in the environment. Here 10593249ebfSmrgis an example: 10693249ebfSmrg 10793249ebfSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 10893249ebfSmrg 10993249ebfSmrg *Note Defining Variables::, for more details. 11093249ebfSmrg 11193249ebfSmrgCompiling For Multiple Architectures 11293249ebfSmrg==================================== 11393249ebfSmrg 11493249ebfSmrg You can compile the package for more than one kind of computer at the 11593249ebfSmrgsame time, by placing the object files for each architecture in their 11693249ebfSmrgown directory. To do this, you can use GNU `make'. `cd' to the 11793249ebfSmrgdirectory where you want the object files and executables to go and run 11893249ebfSmrgthe `configure' script. `configure' automatically checks for the 11993249ebfSmrgsource code in the directory that `configure' is in and in `..'. This 12093249ebfSmrgis known as a "VPATH" build. 12193249ebfSmrg 12293249ebfSmrg With a non-GNU `make', it is safer to compile the package for one 12393249ebfSmrgarchitecture at a time in the source code directory. After you have 12493249ebfSmrginstalled the package for one architecture, use `make distclean' before 12593249ebfSmrgreconfiguring for another architecture. 12693249ebfSmrg 12793249ebfSmrg On MacOS X 10.5 and later systems, you can create libraries and 12893249ebfSmrgexecutables that work on multiple system types--known as "fat" or 12993249ebfSmrg"universal" binaries--by specifying multiple `-arch' options to the 13093249ebfSmrgcompiler but only a single `-arch' option to the preprocessor. Like 13193249ebfSmrgthis: 13293249ebfSmrg 13393249ebfSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13493249ebfSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13593249ebfSmrg CPP="gcc -E" CXXCPP="g++ -E" 13693249ebfSmrg 13793249ebfSmrg This is not guaranteed to produce working output in all cases, you 13893249ebfSmrgmay have to build one architecture at a time and combine the results 13993249ebfSmrgusing the `lipo' tool if you have problems. 14093249ebfSmrg 14193249ebfSmrgInstallation Names 14293249ebfSmrg================== 14393249ebfSmrg 14493249ebfSmrg By default, `make install' installs the package's commands under 14593249ebfSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 14693249ebfSmrgcan specify an installation prefix other than `/usr/local' by giving 14793249ebfSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14893249ebfSmrgabsolute file name. 14993249ebfSmrg 15093249ebfSmrg You can specify separate installation prefixes for 15193249ebfSmrgarchitecture-specific files and architecture-independent files. If you 15293249ebfSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 15393249ebfSmrgPREFIX as the prefix for installing programs and libraries. 15493249ebfSmrgDocumentation and other data files still use the regular prefix. 15593249ebfSmrg 15693249ebfSmrg In addition, if you use an unusual directory layout you can give 15793249ebfSmrgoptions like `--bindir=DIR' to specify different values for particular 15893249ebfSmrgkinds of files. Run `configure --help' for a list of the directories 15993249ebfSmrgyou can set and what kinds of files go in them. In general, the 16093249ebfSmrgdefault for these options is expressed in terms of `${prefix}', so that 16193249ebfSmrgspecifying just `--prefix' will affect all of the other directory 16293249ebfSmrgspecifications that were not explicitly provided. 16393249ebfSmrg 16493249ebfSmrg The most portable way to affect installation locations is to pass the 16593249ebfSmrgcorrect locations to `configure'; however, many packages provide one or 16693249ebfSmrgboth of the following shortcuts of passing variable assignments to the 16793249ebfSmrg`make install' command line to change installation locations without 16893249ebfSmrghaving to reconfigure or recompile. 16993249ebfSmrg 17093249ebfSmrg The first method involves providing an override variable for each 17193249ebfSmrgaffected directory. For example, `make install 17293249ebfSmrgprefix=/alternate/directory' will choose an alternate location for all 17393249ebfSmrgdirectory configuration variables that were expressed in terms of 17493249ebfSmrg`${prefix}'. Any directories that were specified during `configure', 17593249ebfSmrgbut not in terms of `${prefix}', must each be overridden at install 17693249ebfSmrgtime for the entire installation to be relocated. The approach of 17793249ebfSmrgmakefile variable overrides for each directory variable is required by 17893249ebfSmrgthe GNU Coding Standards, and ideally causes no recompilation. 17993249ebfSmrgHowever, some platforms have known limitations with the semantics of 18093249ebfSmrgshared libraries that end up requiring recompilation when using this 18193249ebfSmrgmethod, particularly noticeable in packages that use GNU Libtool. 18293249ebfSmrg 18393249ebfSmrg The second method involves providing the `DESTDIR' variable. For 18493249ebfSmrgexample, `make install DESTDIR=/alternate/directory' will prepend 18593249ebfSmrg`/alternate/directory' before all installation names. The approach of 18693249ebfSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18793249ebfSmrgdoes not work on platforms that have drive letters. On the other hand, 18893249ebfSmrgit does better at avoiding recompilation issues, and works well even 18993249ebfSmrgwhen some directory options were not specified in terms of `${prefix}' 19093249ebfSmrgat `configure' time. 19193249ebfSmrg 19293249ebfSmrgOptional Features 19393249ebfSmrg================= 19493249ebfSmrg 19593249ebfSmrg If the package supports it, you can cause programs to be installed 19693249ebfSmrgwith an extra prefix or suffix on their names by giving `configure' the 19793249ebfSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 19893249ebfSmrg 19993249ebfSmrg Some packages pay attention to `--enable-FEATURE' options to 20093249ebfSmrg`configure', where FEATURE indicates an optional part of the package. 20193249ebfSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 20293249ebfSmrgis something like `gnu-as' or `x' (for the X Window System). The 20393249ebfSmrg`README' should mention any `--enable-' and `--with-' options that the 20493249ebfSmrgpackage recognizes. 20593249ebfSmrg 20693249ebfSmrg For packages that use the X Window System, `configure' can usually 20793249ebfSmrgfind the X include and library files automatically, but if it doesn't, 20893249ebfSmrgyou can use the `configure' options `--x-includes=DIR' and 20993249ebfSmrg`--x-libraries=DIR' to specify their locations. 21093249ebfSmrg 21193249ebfSmrg Some packages offer the ability to configure how verbose the 21293249ebfSmrgexecution of `make' will be. For these packages, running `./configure 21393249ebfSmrg--enable-silent-rules' sets the default to minimal output, which can be 21493249ebfSmrgoverridden with `make V=1'; while running `./configure 21593249ebfSmrg--disable-silent-rules' sets the default to verbose, which can be 21693249ebfSmrgoverridden with `make V=0'. 21793249ebfSmrg 21893249ebfSmrgParticular systems 21993249ebfSmrg================== 22093249ebfSmrg 22193249ebfSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 22293249ebfSmrgCC is not installed, it is recommended to use the following options in 22393249ebfSmrgorder to use an ANSI C compiler: 22493249ebfSmrg 22593249ebfSmrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 22693249ebfSmrg 22793249ebfSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 22893249ebfSmrg 22993249ebfSmrg HP-UX `make' updates targets which have the same time stamps as 23093249ebfSmrgtheir prerequisites, which makes it generally unusable when shipped 23193249ebfSmrggenerated files such as `configure' are involved. Use GNU `make' 23293249ebfSmrginstead. 23393249ebfSmrg 23493249ebfSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 23593249ebfSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 23693249ebfSmrga workaround. If GNU CC is not installed, it is therefore recommended 23793249ebfSmrgto try 23893249ebfSmrg 23993249ebfSmrg ./configure CC="cc" 24093249ebfSmrg 24193249ebfSmrgand if that doesn't work, try 24293249ebfSmrg 24393249ebfSmrg ./configure CC="cc -nodtk" 24493249ebfSmrg 24593249ebfSmrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24693249ebfSmrgdirectory contains several dysfunctional programs; working variants of 24793249ebfSmrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24893249ebfSmrgin your `PATH', put it _after_ `/usr/bin'. 24993249ebfSmrg 25093249ebfSmrg On Haiku, software installed for all users goes in `/boot/common', 25193249ebfSmrgnot `/usr/local'. It is recommended to use the following options: 25293249ebfSmrg 25393249ebfSmrg ./configure --prefix=/boot/common 25493249ebfSmrg 25593249ebfSmrgSpecifying the System Type 25693249ebfSmrg========================== 25793249ebfSmrg 25893249ebfSmrg There may be some features `configure' cannot figure out 25993249ebfSmrgautomatically, but needs to determine by the type of machine the package 26093249ebfSmrgwill run on. Usually, assuming the package is built to be run on the 26193249ebfSmrg_same_ architectures, `configure' can figure that out, but if it prints 26293249ebfSmrga message saying it cannot guess the machine type, give it the 26393249ebfSmrg`--build=TYPE' option. TYPE can either be a short name for the system 26493249ebfSmrgtype, such as `sun4', or a canonical name which has the form: 26593249ebfSmrg 26693249ebfSmrg CPU-COMPANY-SYSTEM 26793249ebfSmrg 26893249ebfSmrgwhere SYSTEM can have one of these forms: 26993249ebfSmrg 27093249ebfSmrg OS 27193249ebfSmrg KERNEL-OS 27293249ebfSmrg 27393249ebfSmrg See the file `config.sub' for the possible values of each field. If 27493249ebfSmrg`config.sub' isn't included in this package, then this package doesn't 27593249ebfSmrgneed to know the machine type. 27693249ebfSmrg 27793249ebfSmrg If you are _building_ compiler tools for cross-compiling, you should 27893249ebfSmrguse the option `--target=TYPE' to select the type of system they will 27993249ebfSmrgproduce code for. 28093249ebfSmrg 28193249ebfSmrg If you want to _use_ a cross compiler, that generates code for a 28293249ebfSmrgplatform different from the build platform, you should specify the 28393249ebfSmrg"host" platform (i.e., that on which the generated programs will 28493249ebfSmrgeventually be run) with `--host=TYPE'. 28593249ebfSmrg 28693249ebfSmrgSharing Defaults 28793249ebfSmrg================ 28893249ebfSmrg 28993249ebfSmrg If you want to set default values for `configure' scripts to share, 29093249ebfSmrgyou can create a site shell script called `config.site' that gives 29193249ebfSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 29293249ebfSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 29393249ebfSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 29493249ebfSmrg`CONFIG_SITE' environment variable to the location of the site script. 29593249ebfSmrgA warning: not all `configure' scripts look for a site script. 29693249ebfSmrg 29793249ebfSmrgDefining Variables 29893249ebfSmrg================== 29993249ebfSmrg 30093249ebfSmrg Variables not defined in a site shell script can be set in the 30193249ebfSmrgenvironment passed to `configure'. However, some packages may run 30293249ebfSmrgconfigure again during the build, and the customized values of these 30393249ebfSmrgvariables may be lost. In order to avoid this problem, you should set 30493249ebfSmrgthem in the `configure' command line, using `VAR=value'. For example: 30593249ebfSmrg 30693249ebfSmrg ./configure CC=/usr/local2/bin/gcc 30793249ebfSmrg 30893249ebfSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 30993249ebfSmrgoverridden in the site shell script). 31093249ebfSmrg 31193249ebfSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 31293249ebfSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 31393249ebfSmrg 31493249ebfSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 31593249ebfSmrg 31693249ebfSmrg`configure' Invocation 31793249ebfSmrg====================== 31893249ebfSmrg 31993249ebfSmrg `configure' recognizes the following options to control how it 32093249ebfSmrgoperates. 32193249ebfSmrg 32293249ebfSmrg`--help' 32393249ebfSmrg`-h' 32493249ebfSmrg Print a summary of all of the options to `configure', and exit. 32593249ebfSmrg 32693249ebfSmrg`--help=short' 32793249ebfSmrg`--help=recursive' 32893249ebfSmrg Print a summary of the options unique to this package's 32993249ebfSmrg `configure', and exit. The `short' variant lists options used 33093249ebfSmrg only in the top level, while the `recursive' variant lists options 33193249ebfSmrg also present in any nested packages. 33293249ebfSmrg 33393249ebfSmrg`--version' 33493249ebfSmrg`-V' 33593249ebfSmrg Print the version of Autoconf used to generate the `configure' 33693249ebfSmrg script, and exit. 33793249ebfSmrg 33893249ebfSmrg`--cache-file=FILE' 33993249ebfSmrg Enable the cache: use and save the results of the tests in FILE, 34093249ebfSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 34193249ebfSmrg disable caching. 34293249ebfSmrg 34393249ebfSmrg`--config-cache' 34493249ebfSmrg`-C' 34593249ebfSmrg Alias for `--cache-file=config.cache'. 34693249ebfSmrg 34793249ebfSmrg`--quiet' 34893249ebfSmrg`--silent' 34993249ebfSmrg`-q' 35093249ebfSmrg Do not print messages saying which checks are being made. To 35193249ebfSmrg suppress all normal output, redirect it to `/dev/null' (any error 35293249ebfSmrg messages will still be shown). 35393249ebfSmrg 35493249ebfSmrg`--srcdir=DIR' 35593249ebfSmrg Look for the package's source code in directory DIR. Usually 35693249ebfSmrg `configure' can determine that directory automatically. 35793249ebfSmrg 35893249ebfSmrg`--prefix=DIR' 35993249ebfSmrg Use DIR as the installation prefix. *note Installation Names:: 36093249ebfSmrg for more details, including other options available for fine-tuning 36193249ebfSmrg the installation locations. 36293249ebfSmrg 36393249ebfSmrg`--no-create' 36493249ebfSmrg`-n' 36593249ebfSmrg Run the configure checks, but stop before creating any output 36693249ebfSmrg files. 36793249ebfSmrg 36893249ebfSmrg`configure' also accepts some other, not widely useful, options. Run 36993249ebfSmrg`configure --help' for more details. 37093249ebfSmrg 371