134a0776dSmrgInstallation Instructions 234a0776dSmrg************************* 334a0776dSmrg 434a0776dSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 534a0776dSmrgInc. 634a0776dSmrg 734a0776dSmrg Copying and distribution of this file, with or without modification, 834a0776dSmrgare permitted in any medium without royalty provided the copyright 934a0776dSmrgnotice and this notice are preserved. This file is offered as-is, 1034a0776dSmrgwithout warranty of any kind. 1134a0776dSmrg 1234a0776dSmrgBasic Installation 1334a0776dSmrg================== 1434a0776dSmrg 1534a0776dSmrg Briefly, the shell commands `./configure; make; make install' should 1634a0776dSmrgconfigure, build, and install this package. The following 1734a0776dSmrgmore-detailed instructions are generic; see the `README' file for 1834a0776dSmrginstructions specific to this package. Some packages provide this 1934a0776dSmrg`INSTALL' file but do not implement all of the features documented 2034a0776dSmrgbelow. The lack of an optional feature in a given package is not 2134a0776dSmrgnecessarily a bug. More recommendations for GNU packages can be found 2234a0776dSmrgin *note Makefile Conventions: (standards)Makefile Conventions. 2334a0776dSmrg 2434a0776dSmrg The `configure' shell script attempts to guess correct values for 2534a0776dSmrgvarious system-dependent variables used during compilation. It uses 2634a0776dSmrgthose values to create a `Makefile' in each directory of the package. 2734a0776dSmrgIt may also create one or more `.h' files containing system-dependent 2834a0776dSmrgdefinitions. Finally, it creates a shell script `config.status' that 2934a0776dSmrgyou can run in the future to recreate the current configuration, and a 3034a0776dSmrgfile `config.log' containing compiler output (useful mainly for 3134a0776dSmrgdebugging `configure'). 3234a0776dSmrg 3334a0776dSmrg It can also use an optional file (typically called `config.cache' 3434a0776dSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 3534a0776dSmrgthe results of its tests to speed up reconfiguring. Caching is 3634a0776dSmrgdisabled by default to prevent problems with accidental use of stale 3734a0776dSmrgcache files. 3834a0776dSmrg 3934a0776dSmrg If you need to do unusual things to compile the package, please try 4034a0776dSmrgto figure out how `configure' could check whether to do them, and mail 4134a0776dSmrgdiffs or instructions to the address given in the `README' so they can 4234a0776dSmrgbe considered for the next release. If you are using the cache, and at 4334a0776dSmrgsome point `config.cache' contains results you don't want to keep, you 4434a0776dSmrgmay remove or edit it. 4534a0776dSmrg 4634a0776dSmrg The file `configure.ac' (or `configure.in') is used to create 4734a0776dSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4834a0776dSmrgyou want to change it or regenerate `configure' using a newer version 4934a0776dSmrgof `autoconf'. 5034a0776dSmrg 5134a0776dSmrg The simplest way to compile this package is: 5234a0776dSmrg 5334a0776dSmrg 1. `cd' to the directory containing the package's source code and type 5434a0776dSmrg `./configure' to configure the package for your system. 5534a0776dSmrg 5634a0776dSmrg Running `configure' might take a while. While running, it prints 5734a0776dSmrg some messages telling which features it is checking for. 5834a0776dSmrg 5934a0776dSmrg 2. Type `make' to compile the package. 6034a0776dSmrg 6134a0776dSmrg 3. Optionally, type `make check' to run any self-tests that come with 6234a0776dSmrg the package, generally using the just-built uninstalled binaries. 6334a0776dSmrg 6434a0776dSmrg 4. Type `make install' to install the programs and any data files and 6534a0776dSmrg documentation. When installing into a prefix owned by root, it is 6634a0776dSmrg recommended that the package be configured and built as a regular 6734a0776dSmrg user, and only the `make install' phase executed with root 6834a0776dSmrg privileges. 6934a0776dSmrg 7034a0776dSmrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7134a0776dSmrg this time using the binaries in their final installed location. 7234a0776dSmrg This target does not install anything. Running this target as a 7334a0776dSmrg regular user, particularly if the prior `make install' required 7434a0776dSmrg root privileges, verifies that the installation completed 7534a0776dSmrg correctly. 7634a0776dSmrg 7734a0776dSmrg 6. You can remove the program binaries and object files from the 7834a0776dSmrg source code directory by typing `make clean'. To also remove the 7934a0776dSmrg files that `configure' created (so you can compile the package for 8034a0776dSmrg a different kind of computer), type `make distclean'. There is 8134a0776dSmrg also a `make maintainer-clean' target, but that is intended mainly 8234a0776dSmrg for the package's developers. If you use it, you may have to get 8334a0776dSmrg all sorts of other programs in order to regenerate files that came 8434a0776dSmrg with the distribution. 8534a0776dSmrg 8634a0776dSmrg 7. Often, you can also type `make uninstall' to remove the installed 8734a0776dSmrg files again. In practice, not all packages have tested that 8834a0776dSmrg uninstallation works correctly, even though it is required by the 8934a0776dSmrg GNU Coding Standards. 9034a0776dSmrg 9134a0776dSmrg 8. Some packages, particularly those that use Automake, provide `make 9234a0776dSmrg distcheck', which can by used by developers to test that all other 9334a0776dSmrg targets like `make install' and `make uninstall' work correctly. 9434a0776dSmrg This target is generally not run by end users. 9534a0776dSmrg 9634a0776dSmrgCompilers and Options 9734a0776dSmrg===================== 9834a0776dSmrg 9934a0776dSmrg Some systems require unusual options for compilation or linking that 10034a0776dSmrgthe `configure' script does not know about. Run `./configure --help' 10134a0776dSmrgfor details on some of the pertinent environment variables. 10234a0776dSmrg 10334a0776dSmrg You can give `configure' initial values for configuration parameters 10434a0776dSmrgby setting variables in the command line or in the environment. Here 10534a0776dSmrgis an example: 10634a0776dSmrg 10734a0776dSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 10834a0776dSmrg 10934a0776dSmrg *Note Defining Variables::, for more details. 11034a0776dSmrg 11134a0776dSmrgCompiling For Multiple Architectures 11234a0776dSmrg==================================== 11334a0776dSmrg 11434a0776dSmrg You can compile the package for more than one kind of computer at the 11534a0776dSmrgsame time, by placing the object files for each architecture in their 11634a0776dSmrgown directory. To do this, you can use GNU `make'. `cd' to the 11734a0776dSmrgdirectory where you want the object files and executables to go and run 11834a0776dSmrgthe `configure' script. `configure' automatically checks for the 11934a0776dSmrgsource code in the directory that `configure' is in and in `..'. This 12034a0776dSmrgis known as a "VPATH" build. 12134a0776dSmrg 12234a0776dSmrg With a non-GNU `make', it is safer to compile the package for one 12334a0776dSmrgarchitecture at a time in the source code directory. After you have 12434a0776dSmrginstalled the package for one architecture, use `make distclean' before 12534a0776dSmrgreconfiguring for another architecture. 12634a0776dSmrg 12734a0776dSmrg On MacOS X 10.5 and later systems, you can create libraries and 12834a0776dSmrgexecutables that work on multiple system types--known as "fat" or 12934a0776dSmrg"universal" binaries--by specifying multiple `-arch' options to the 13034a0776dSmrgcompiler but only a single `-arch' option to the preprocessor. Like 13134a0776dSmrgthis: 13234a0776dSmrg 13334a0776dSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13434a0776dSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 13534a0776dSmrg CPP="gcc -E" CXXCPP="g++ -E" 13634a0776dSmrg 13734a0776dSmrg This is not guaranteed to produce working output in all cases, you 13834a0776dSmrgmay have to build one architecture at a time and combine the results 13934a0776dSmrgusing the `lipo' tool if you have problems. 14034a0776dSmrg 14134a0776dSmrgInstallation Names 14234a0776dSmrg================== 14334a0776dSmrg 14434a0776dSmrg By default, `make install' installs the package's commands under 14534a0776dSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 14634a0776dSmrgcan specify an installation prefix other than `/usr/local' by giving 14734a0776dSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14834a0776dSmrgabsolute file name. 14934a0776dSmrg 15034a0776dSmrg You can specify separate installation prefixes for 15134a0776dSmrgarchitecture-specific files and architecture-independent files. If you 15234a0776dSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 15334a0776dSmrgPREFIX as the prefix for installing programs and libraries. 15434a0776dSmrgDocumentation and other data files still use the regular prefix. 15534a0776dSmrg 15634a0776dSmrg In addition, if you use an unusual directory layout you can give 15734a0776dSmrgoptions like `--bindir=DIR' to specify different values for particular 15834a0776dSmrgkinds of files. Run `configure --help' for a list of the directories 15934a0776dSmrgyou can set and what kinds of files go in them. In general, the 16034a0776dSmrgdefault for these options is expressed in terms of `${prefix}', so that 16134a0776dSmrgspecifying just `--prefix' will affect all of the other directory 16234a0776dSmrgspecifications that were not explicitly provided. 16334a0776dSmrg 16434a0776dSmrg The most portable way to affect installation locations is to pass the 16534a0776dSmrgcorrect locations to `configure'; however, many packages provide one or 16634a0776dSmrgboth of the following shortcuts of passing variable assignments to the 16734a0776dSmrg`make install' command line to change installation locations without 16834a0776dSmrghaving to reconfigure or recompile. 16934a0776dSmrg 17034a0776dSmrg The first method involves providing an override variable for each 17134a0776dSmrgaffected directory. For example, `make install 17234a0776dSmrgprefix=/alternate/directory' will choose an alternate location for all 17334a0776dSmrgdirectory configuration variables that were expressed in terms of 17434a0776dSmrg`${prefix}'. Any directories that were specified during `configure', 17534a0776dSmrgbut not in terms of `${prefix}', must each be overridden at install 17634a0776dSmrgtime for the entire installation to be relocated. The approach of 17734a0776dSmrgmakefile variable overrides for each directory variable is required by 17834a0776dSmrgthe GNU Coding Standards, and ideally causes no recompilation. 17934a0776dSmrgHowever, some platforms have known limitations with the semantics of 18034a0776dSmrgshared libraries that end up requiring recompilation when using this 18134a0776dSmrgmethod, particularly noticeable in packages that use GNU Libtool. 18234a0776dSmrg 18334a0776dSmrg The second method involves providing the `DESTDIR' variable. For 18434a0776dSmrgexample, `make install DESTDIR=/alternate/directory' will prepend 18534a0776dSmrg`/alternate/directory' before all installation names. The approach of 18634a0776dSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18734a0776dSmrgdoes not work on platforms that have drive letters. On the other hand, 18834a0776dSmrgit does better at avoiding recompilation issues, and works well even 18934a0776dSmrgwhen some directory options were not specified in terms of `${prefix}' 19034a0776dSmrgat `configure' time. 19134a0776dSmrg 19234a0776dSmrgOptional Features 19334a0776dSmrg================= 19434a0776dSmrg 19534a0776dSmrg If the package supports it, you can cause programs to be installed 19634a0776dSmrgwith an extra prefix or suffix on their names by giving `configure' the 19734a0776dSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 19834a0776dSmrg 19934a0776dSmrg Some packages pay attention to `--enable-FEATURE' options to 20034a0776dSmrg`configure', where FEATURE indicates an optional part of the package. 20134a0776dSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 20234a0776dSmrgis something like `gnu-as' or `x' (for the X Window System). The 20334a0776dSmrg`README' should mention any `--enable-' and `--with-' options that the 20434a0776dSmrgpackage recognizes. 20534a0776dSmrg 20634a0776dSmrg For packages that use the X Window System, `configure' can usually 20734a0776dSmrgfind the X include and library files automatically, but if it doesn't, 20834a0776dSmrgyou can use the `configure' options `--x-includes=DIR' and 20934a0776dSmrg`--x-libraries=DIR' to specify their locations. 21034a0776dSmrg 21134a0776dSmrg Some packages offer the ability to configure how verbose the 21234a0776dSmrgexecution of `make' will be. For these packages, running `./configure 21334a0776dSmrg--enable-silent-rules' sets the default to minimal output, which can be 21434a0776dSmrgoverridden with `make V=1'; while running `./configure 21534a0776dSmrg--disable-silent-rules' sets the default to verbose, which can be 21634a0776dSmrgoverridden with `make V=0'. 21734a0776dSmrg 21834a0776dSmrgParticular systems 21934a0776dSmrg================== 22034a0776dSmrg 22134a0776dSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 22234a0776dSmrgCC is not installed, it is recommended to use the following options in 22334a0776dSmrgorder to use an ANSI C compiler: 22434a0776dSmrg 22534a0776dSmrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 22634a0776dSmrg 22734a0776dSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 22834a0776dSmrg 22934a0776dSmrg HP-UX `make' updates targets which have the same time stamps as 23034a0776dSmrgtheir prerequisites, which makes it generally unusable when shipped 23134a0776dSmrggenerated files such as `configure' are involved. Use GNU `make' 23234a0776dSmrginstead. 23334a0776dSmrg 23434a0776dSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 23534a0776dSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 23634a0776dSmrga workaround. If GNU CC is not installed, it is therefore recommended 23734a0776dSmrgto try 23834a0776dSmrg 23934a0776dSmrg ./configure CC="cc" 24034a0776dSmrg 24134a0776dSmrgand if that doesn't work, try 24234a0776dSmrg 24334a0776dSmrg ./configure CC="cc -nodtk" 24434a0776dSmrg 24534a0776dSmrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24634a0776dSmrgdirectory contains several dysfunctional programs; working variants of 24734a0776dSmrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24834a0776dSmrgin your `PATH', put it _after_ `/usr/bin'. 24934a0776dSmrg 25034a0776dSmrg On Haiku, software installed for all users goes in `/boot/common', 25134a0776dSmrgnot `/usr/local'. It is recommended to use the following options: 25234a0776dSmrg 25334a0776dSmrg ./configure --prefix=/boot/common 25434a0776dSmrg 25534a0776dSmrgSpecifying the System Type 25634a0776dSmrg========================== 25734a0776dSmrg 25834a0776dSmrg There may be some features `configure' cannot figure out 25934a0776dSmrgautomatically, but needs to determine by the type of machine the package 26034a0776dSmrgwill run on. Usually, assuming the package is built to be run on the 26134a0776dSmrg_same_ architectures, `configure' can figure that out, but if it prints 26234a0776dSmrga message saying it cannot guess the machine type, give it the 26334a0776dSmrg`--build=TYPE' option. TYPE can either be a short name for the system 26434a0776dSmrgtype, such as `sun4', or a canonical name which has the form: 26534a0776dSmrg 26634a0776dSmrg CPU-COMPANY-SYSTEM 26734a0776dSmrg 26834a0776dSmrgwhere SYSTEM can have one of these forms: 26934a0776dSmrg 27034a0776dSmrg OS 27134a0776dSmrg KERNEL-OS 27234a0776dSmrg 27334a0776dSmrg See the file `config.sub' for the possible values of each field. If 27434a0776dSmrg`config.sub' isn't included in this package, then this package doesn't 27534a0776dSmrgneed to know the machine type. 27634a0776dSmrg 27734a0776dSmrg If you are _building_ compiler tools for cross-compiling, you should 27834a0776dSmrguse the option `--target=TYPE' to select the type of system they will 27934a0776dSmrgproduce code for. 28034a0776dSmrg 28134a0776dSmrg If you want to _use_ a cross compiler, that generates code for a 28234a0776dSmrgplatform different from the build platform, you should specify the 28334a0776dSmrg"host" platform (i.e., that on which the generated programs will 28434a0776dSmrgeventually be run) with `--host=TYPE'. 28534a0776dSmrg 28634a0776dSmrgSharing Defaults 28734a0776dSmrg================ 28834a0776dSmrg 28934a0776dSmrg If you want to set default values for `configure' scripts to share, 29034a0776dSmrgyou can create a site shell script called `config.site' that gives 29134a0776dSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 29234a0776dSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 29334a0776dSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 29434a0776dSmrg`CONFIG_SITE' environment variable to the location of the site script. 29534a0776dSmrgA warning: not all `configure' scripts look for a site script. 29634a0776dSmrg 29734a0776dSmrgDefining Variables 29834a0776dSmrg================== 29934a0776dSmrg 30034a0776dSmrg Variables not defined in a site shell script can be set in the 30134a0776dSmrgenvironment passed to `configure'. However, some packages may run 30234a0776dSmrgconfigure again during the build, and the customized values of these 30334a0776dSmrgvariables may be lost. In order to avoid this problem, you should set 30434a0776dSmrgthem in the `configure' command line, using `VAR=value'. For example: 30534a0776dSmrg 30634a0776dSmrg ./configure CC=/usr/local2/bin/gcc 30734a0776dSmrg 30834a0776dSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 30934a0776dSmrgoverridden in the site shell script). 31034a0776dSmrg 31134a0776dSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 31234a0776dSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 31334a0776dSmrg 31434a0776dSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 31534a0776dSmrg 31634a0776dSmrg`configure' Invocation 31734a0776dSmrg====================== 31834a0776dSmrg 31934a0776dSmrg `configure' recognizes the following options to control how it 32034a0776dSmrgoperates. 32134a0776dSmrg 32234a0776dSmrg`--help' 32334a0776dSmrg`-h' 32434a0776dSmrg Print a summary of all of the options to `configure', and exit. 32534a0776dSmrg 32634a0776dSmrg`--help=short' 32734a0776dSmrg`--help=recursive' 32834a0776dSmrg Print a summary of the options unique to this package's 32934a0776dSmrg `configure', and exit. The `short' variant lists options used 33034a0776dSmrg only in the top level, while the `recursive' variant lists options 33134a0776dSmrg also present in any nested packages. 33234a0776dSmrg 33334a0776dSmrg`--version' 33434a0776dSmrg`-V' 33534a0776dSmrg Print the version of Autoconf used to generate the `configure' 33634a0776dSmrg script, and exit. 33734a0776dSmrg 33834a0776dSmrg`--cache-file=FILE' 33934a0776dSmrg Enable the cache: use and save the results of the tests in FILE, 34034a0776dSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 34134a0776dSmrg disable caching. 34234a0776dSmrg 34334a0776dSmrg`--config-cache' 34434a0776dSmrg`-C' 34534a0776dSmrg Alias for `--cache-file=config.cache'. 34634a0776dSmrg 34734a0776dSmrg`--quiet' 34834a0776dSmrg`--silent' 34934a0776dSmrg`-q' 35034a0776dSmrg Do not print messages saying which checks are being made. To 35134a0776dSmrg suppress all normal output, redirect it to `/dev/null' (any error 35234a0776dSmrg messages will still be shown). 35334a0776dSmrg 35434a0776dSmrg`--srcdir=DIR' 35534a0776dSmrg Look for the package's source code in directory DIR. Usually 35634a0776dSmrg `configure' can determine that directory automatically. 35734a0776dSmrg 35834a0776dSmrg`--prefix=DIR' 35934a0776dSmrg Use DIR as the installation prefix. *note Installation Names:: 36034a0776dSmrg for more details, including other options available for fine-tuning 36134a0776dSmrg the installation locations. 36234a0776dSmrg 36334a0776dSmrg`--no-create' 36434a0776dSmrg`-n' 36534a0776dSmrg Run the configure checks, but stop before creating any output 36634a0776dSmrg files. 36734a0776dSmrg 36834a0776dSmrg`configure' also accepts some other, not widely useful, options. Run 36934a0776dSmrg`configure --help' for more details. 37034a0776dSmrg 371