14fbc8bdeSmrgInstallation Instructions 24fbc8bdeSmrg************************* 34fbc8bdeSmrg 4fb4ebca8SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 5fb4ebca8SmrgInc. 64fbc8bdeSmrg 7fb4ebca8Smrg Copying and distribution of this file, with or without modification, 8fb4ebca8Smrgare permitted in any medium without royalty provided the copyright 9fb4ebca8Smrgnotice and this notice are preserved. This file is offered as-is, 10fb4ebca8Smrgwithout warranty of any kind. 114fbc8bdeSmrg 124fbc8bdeSmrgBasic Installation 134fbc8bdeSmrg================== 144fbc8bdeSmrg 154fbc8bdeSmrg Briefly, the shell commands `./configure; make; make install' should 164fbc8bdeSmrgconfigure, build, and install this package. The following 174fbc8bdeSmrgmore-detailed instructions are generic; see the `README' file for 18fb4ebca8Smrginstructions specific to this package. Some packages provide this 19fb4ebca8Smrg`INSTALL' file but do not implement all of the features documented 20fb4ebca8Smrgbelow. The lack of an optional feature in a given package is not 21fb4ebca8Smrgnecessarily a bug. More recommendations for GNU packages can be found 22fb4ebca8Smrgin *note Makefile Conventions: (standards)Makefile Conventions. 234fbc8bdeSmrg 244fbc8bdeSmrg The `configure' shell script attempts to guess correct values for 254fbc8bdeSmrgvarious system-dependent variables used during compilation. It uses 264fbc8bdeSmrgthose values to create a `Makefile' in each directory of the package. 274fbc8bdeSmrgIt may also create one or more `.h' files containing system-dependent 284fbc8bdeSmrgdefinitions. Finally, it creates a shell script `config.status' that 294fbc8bdeSmrgyou can run in the future to recreate the current configuration, and a 304fbc8bdeSmrgfile `config.log' containing compiler output (useful mainly for 314fbc8bdeSmrgdebugging `configure'). 324fbc8bdeSmrg 334fbc8bdeSmrg It can also use an optional file (typically called `config.cache' 344fbc8bdeSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 354fbc8bdeSmrgthe results of its tests to speed up reconfiguring. Caching is 364fbc8bdeSmrgdisabled by default to prevent problems with accidental use of stale 374fbc8bdeSmrgcache files. 384fbc8bdeSmrg 394fbc8bdeSmrg If you need to do unusual things to compile the package, please try 404fbc8bdeSmrgto figure out how `configure' could check whether to do them, and mail 414fbc8bdeSmrgdiffs or instructions to the address given in the `README' so they can 424fbc8bdeSmrgbe considered for the next release. If you are using the cache, and at 434fbc8bdeSmrgsome point `config.cache' contains results you don't want to keep, you 444fbc8bdeSmrgmay remove or edit it. 454fbc8bdeSmrg 464fbc8bdeSmrg The file `configure.ac' (or `configure.in') is used to create 474fbc8bdeSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 484fbc8bdeSmrgyou want to change it or regenerate `configure' using a newer version 494fbc8bdeSmrgof `autoconf'. 504fbc8bdeSmrg 51fb4ebca8Smrg The simplest way to compile this package is: 524fbc8bdeSmrg 534fbc8bdeSmrg 1. `cd' to the directory containing the package's source code and type 544fbc8bdeSmrg `./configure' to configure the package for your system. 554fbc8bdeSmrg 564fbc8bdeSmrg Running `configure' might take a while. While running, it prints 574fbc8bdeSmrg some messages telling which features it is checking for. 584fbc8bdeSmrg 594fbc8bdeSmrg 2. Type `make' to compile the package. 604fbc8bdeSmrg 614fbc8bdeSmrg 3. Optionally, type `make check' to run any self-tests that come with 62fb4ebca8Smrg the package, generally using the just-built uninstalled binaries. 634fbc8bdeSmrg 644fbc8bdeSmrg 4. Type `make install' to install the programs and any data files and 65fb4ebca8Smrg documentation. When installing into a prefix owned by root, it is 66fb4ebca8Smrg recommended that the package be configured and built as a regular 67fb4ebca8Smrg user, and only the `make install' phase executed with root 68fb4ebca8Smrg privileges. 69fb4ebca8Smrg 70fb4ebca8Smrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 71fb4ebca8Smrg this time using the binaries in their final installed location. 72fb4ebca8Smrg This target does not install anything. Running this target as a 73fb4ebca8Smrg regular user, particularly if the prior `make install' required 74fb4ebca8Smrg root privileges, verifies that the installation completed 75fb4ebca8Smrg correctly. 76fb4ebca8Smrg 77fb4ebca8Smrg 6. You can remove the program binaries and object files from the 784fbc8bdeSmrg source code directory by typing `make clean'. To also remove the 794fbc8bdeSmrg files that `configure' created (so you can compile the package for 804fbc8bdeSmrg a different kind of computer), type `make distclean'. There is 814fbc8bdeSmrg also a `make maintainer-clean' target, but that is intended mainly 824fbc8bdeSmrg for the package's developers. If you use it, you may have to get 834fbc8bdeSmrg all sorts of other programs in order to regenerate files that came 844fbc8bdeSmrg with the distribution. 854fbc8bdeSmrg 86fb4ebca8Smrg 7. Often, you can also type `make uninstall' to remove the installed 87fb4ebca8Smrg files again. In practice, not all packages have tested that 88fb4ebca8Smrg uninstallation works correctly, even though it is required by the 89fb4ebca8Smrg GNU Coding Standards. 90fb4ebca8Smrg 91fb4ebca8Smrg 8. Some packages, particularly those that use Automake, provide `make 92fb4ebca8Smrg distcheck', which can by used by developers to test that all other 93fb4ebca8Smrg targets like `make install' and `make uninstall' work correctly. 94fb4ebca8Smrg This target is generally not run by end users. 954fbc8bdeSmrg 964fbc8bdeSmrgCompilers and Options 974fbc8bdeSmrg===================== 984fbc8bdeSmrg 994fbc8bdeSmrg Some systems require unusual options for compilation or linking that 1004fbc8bdeSmrgthe `configure' script does not know about. Run `./configure --help' 1014fbc8bdeSmrgfor details on some of the pertinent environment variables. 1024fbc8bdeSmrg 1034fbc8bdeSmrg You can give `configure' initial values for configuration parameters 1044fbc8bdeSmrgby setting variables in the command line or in the environment. Here 1054fbc8bdeSmrgis an example: 1064fbc8bdeSmrg 1074fbc8bdeSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 1084fbc8bdeSmrg 1094fbc8bdeSmrg *Note Defining Variables::, for more details. 1104fbc8bdeSmrg 1114fbc8bdeSmrgCompiling For Multiple Architectures 1124fbc8bdeSmrg==================================== 1134fbc8bdeSmrg 1144fbc8bdeSmrg You can compile the package for more than one kind of computer at the 1154fbc8bdeSmrgsame time, by placing the object files for each architecture in their 1164fbc8bdeSmrgown directory. To do this, you can use GNU `make'. `cd' to the 1174fbc8bdeSmrgdirectory where you want the object files and executables to go and run 1184fbc8bdeSmrgthe `configure' script. `configure' automatically checks for the 119fb4ebca8Smrgsource code in the directory that `configure' is in and in `..'. This 120fb4ebca8Smrgis known as a "VPATH" build. 1214fbc8bdeSmrg 1224fbc8bdeSmrg With a non-GNU `make', it is safer to compile the package for one 1234fbc8bdeSmrgarchitecture at a time in the source code directory. After you have 1244fbc8bdeSmrginstalled the package for one architecture, use `make distclean' before 1254fbc8bdeSmrgreconfiguring for another architecture. 1264fbc8bdeSmrg 1274fbc8bdeSmrg On MacOS X 10.5 and later systems, you can create libraries and 1284fbc8bdeSmrgexecutables that work on multiple system types--known as "fat" or 1294fbc8bdeSmrg"universal" binaries--by specifying multiple `-arch' options to the 1304fbc8bdeSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1314fbc8bdeSmrgthis: 1324fbc8bdeSmrg 1334fbc8bdeSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1344fbc8bdeSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1354fbc8bdeSmrg CPP="gcc -E" CXXCPP="g++ -E" 1364fbc8bdeSmrg 1374fbc8bdeSmrg This is not guaranteed to produce working output in all cases, you 1384fbc8bdeSmrgmay have to build one architecture at a time and combine the results 1394fbc8bdeSmrgusing the `lipo' tool if you have problems. 1404fbc8bdeSmrg 1414fbc8bdeSmrgInstallation Names 1424fbc8bdeSmrg================== 1434fbc8bdeSmrg 1444fbc8bdeSmrg By default, `make install' installs the package's commands under 1454fbc8bdeSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1464fbc8bdeSmrgcan specify an installation prefix other than `/usr/local' by giving 147fb4ebca8Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 148fb4ebca8Smrgabsolute file name. 1494fbc8bdeSmrg 1504fbc8bdeSmrg You can specify separate installation prefixes for 1514fbc8bdeSmrgarchitecture-specific files and architecture-independent files. If you 1524fbc8bdeSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1534fbc8bdeSmrgPREFIX as the prefix for installing programs and libraries. 1544fbc8bdeSmrgDocumentation and other data files still use the regular prefix. 1554fbc8bdeSmrg 1564fbc8bdeSmrg In addition, if you use an unusual directory layout you can give 1574fbc8bdeSmrgoptions like `--bindir=DIR' to specify different values for particular 1584fbc8bdeSmrgkinds of files. Run `configure --help' for a list of the directories 159fb4ebca8Smrgyou can set and what kinds of files go in them. In general, the 160fb4ebca8Smrgdefault for these options is expressed in terms of `${prefix}', so that 161fb4ebca8Smrgspecifying just `--prefix' will affect all of the other directory 162fb4ebca8Smrgspecifications that were not explicitly provided. 163fb4ebca8Smrg 164fb4ebca8Smrg The most portable way to affect installation locations is to pass the 165fb4ebca8Smrgcorrect locations to `configure'; however, many packages provide one or 166fb4ebca8Smrgboth of the following shortcuts of passing variable assignments to the 167fb4ebca8Smrg`make install' command line to change installation locations without 168fb4ebca8Smrghaving to reconfigure or recompile. 169fb4ebca8Smrg 170fb4ebca8Smrg The first method involves providing an override variable for each 171fb4ebca8Smrgaffected directory. For example, `make install 172fb4ebca8Smrgprefix=/alternate/directory' will choose an alternate location for all 173fb4ebca8Smrgdirectory configuration variables that were expressed in terms of 174fb4ebca8Smrg`${prefix}'. Any directories that were specified during `configure', 175fb4ebca8Smrgbut not in terms of `${prefix}', must each be overridden at install 176fb4ebca8Smrgtime for the entire installation to be relocated. The approach of 177fb4ebca8Smrgmakefile variable overrides for each directory variable is required by 178fb4ebca8Smrgthe GNU Coding Standards, and ideally causes no recompilation. 179fb4ebca8SmrgHowever, some platforms have known limitations with the semantics of 180fb4ebca8Smrgshared libraries that end up requiring recompilation when using this 181fb4ebca8Smrgmethod, particularly noticeable in packages that use GNU Libtool. 182fb4ebca8Smrg 183fb4ebca8Smrg The second method involves providing the `DESTDIR' variable. For 184fb4ebca8Smrgexample, `make install DESTDIR=/alternate/directory' will prepend 185fb4ebca8Smrg`/alternate/directory' before all installation names. The approach of 186fb4ebca8Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 187fb4ebca8Smrgdoes not work on platforms that have drive letters. On the other hand, 188fb4ebca8Smrgit does better at avoiding recompilation issues, and works well even 189fb4ebca8Smrgwhen some directory options were not specified in terms of `${prefix}' 190fb4ebca8Smrgat `configure' time. 191fb4ebca8Smrg 192fb4ebca8SmrgOptional Features 193fb4ebca8Smrg================= 1944fbc8bdeSmrg 1954fbc8bdeSmrg If the package supports it, you can cause programs to be installed 1964fbc8bdeSmrgwith an extra prefix or suffix on their names by giving `configure' the 1974fbc8bdeSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1984fbc8bdeSmrg 1994fbc8bdeSmrg Some packages pay attention to `--enable-FEATURE' options to 2004fbc8bdeSmrg`configure', where FEATURE indicates an optional part of the package. 2014fbc8bdeSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 2024fbc8bdeSmrgis something like `gnu-as' or `x' (for the X Window System). The 2034fbc8bdeSmrg`README' should mention any `--enable-' and `--with-' options that the 2044fbc8bdeSmrgpackage recognizes. 2054fbc8bdeSmrg 2064fbc8bdeSmrg For packages that use the X Window System, `configure' can usually 2074fbc8bdeSmrgfind the X include and library files automatically, but if it doesn't, 2084fbc8bdeSmrgyou can use the `configure' options `--x-includes=DIR' and 2094fbc8bdeSmrg`--x-libraries=DIR' to specify their locations. 2104fbc8bdeSmrg 211fb4ebca8Smrg Some packages offer the ability to configure how verbose the 212fb4ebca8Smrgexecution of `make' will be. For these packages, running `./configure 213fb4ebca8Smrg--enable-silent-rules' sets the default to minimal output, which can be 214fb4ebca8Smrgoverridden with `make V=1'; while running `./configure 215fb4ebca8Smrg--disable-silent-rules' sets the default to verbose, which can be 216fb4ebca8Smrgoverridden with `make V=0'. 217fb4ebca8Smrg 2184fbc8bdeSmrgParticular systems 2194fbc8bdeSmrg================== 2204fbc8bdeSmrg 2214fbc8bdeSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 2224fbc8bdeSmrgCC is not installed, it is recommended to use the following options in 2234fbc8bdeSmrgorder to use an ANSI C compiler: 2244fbc8bdeSmrg 225fb4ebca8Smrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 2264fbc8bdeSmrg 2274fbc8bdeSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 2284fbc8bdeSmrg 229fb4ebca8Smrg HP-UX `make' updates targets which have the same time stamps as 230fb4ebca8Smrgtheir prerequisites, which makes it generally unusable when shipped 231fb4ebca8Smrggenerated files such as `configure' are involved. Use GNU `make' 232fb4ebca8Smrginstead. 233fb4ebca8Smrg 2344fbc8bdeSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 2354fbc8bdeSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 2364fbc8bdeSmrga workaround. If GNU CC is not installed, it is therefore recommended 2374fbc8bdeSmrgto try 2384fbc8bdeSmrg 2394fbc8bdeSmrg ./configure CC="cc" 2404fbc8bdeSmrg 2414fbc8bdeSmrgand if that doesn't work, try 2424fbc8bdeSmrg 2434fbc8bdeSmrg ./configure CC="cc -nodtk" 2444fbc8bdeSmrg 245fb4ebca8Smrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 246fb4ebca8Smrgdirectory contains several dysfunctional programs; working variants of 247fb4ebca8Smrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 248fb4ebca8Smrgin your `PATH', put it _after_ `/usr/bin'. 249fb4ebca8Smrg 250fb4ebca8Smrg On Haiku, software installed for all users goes in `/boot/common', 251fb4ebca8Smrgnot `/usr/local'. It is recommended to use the following options: 252fb4ebca8Smrg 253fb4ebca8Smrg ./configure --prefix=/boot/common 254fb4ebca8Smrg 2554fbc8bdeSmrgSpecifying the System Type 2564fbc8bdeSmrg========================== 2574fbc8bdeSmrg 2584fbc8bdeSmrg There may be some features `configure' cannot figure out 2594fbc8bdeSmrgautomatically, but needs to determine by the type of machine the package 2604fbc8bdeSmrgwill run on. Usually, assuming the package is built to be run on the 2614fbc8bdeSmrg_same_ architectures, `configure' can figure that out, but if it prints 2624fbc8bdeSmrga message saying it cannot guess the machine type, give it the 2634fbc8bdeSmrg`--build=TYPE' option. TYPE can either be a short name for the system 2644fbc8bdeSmrgtype, such as `sun4', or a canonical name which has the form: 2654fbc8bdeSmrg 2664fbc8bdeSmrg CPU-COMPANY-SYSTEM 2674fbc8bdeSmrg 2684fbc8bdeSmrgwhere SYSTEM can have one of these forms: 2694fbc8bdeSmrg 270fb4ebca8Smrg OS 271fb4ebca8Smrg KERNEL-OS 2724fbc8bdeSmrg 2734fbc8bdeSmrg See the file `config.sub' for the possible values of each field. If 2744fbc8bdeSmrg`config.sub' isn't included in this package, then this package doesn't 2754fbc8bdeSmrgneed to know the machine type. 2764fbc8bdeSmrg 2774fbc8bdeSmrg If you are _building_ compiler tools for cross-compiling, you should 2784fbc8bdeSmrguse the option `--target=TYPE' to select the type of system they will 2794fbc8bdeSmrgproduce code for. 2804fbc8bdeSmrg 2814fbc8bdeSmrg If you want to _use_ a cross compiler, that generates code for a 2824fbc8bdeSmrgplatform different from the build platform, you should specify the 2834fbc8bdeSmrg"host" platform (i.e., that on which the generated programs will 2844fbc8bdeSmrgeventually be run) with `--host=TYPE'. 2854fbc8bdeSmrg 2864fbc8bdeSmrgSharing Defaults 2874fbc8bdeSmrg================ 2884fbc8bdeSmrg 2894fbc8bdeSmrg If you want to set default values for `configure' scripts to share, 2904fbc8bdeSmrgyou can create a site shell script called `config.site' that gives 2914fbc8bdeSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2924fbc8bdeSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2934fbc8bdeSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2944fbc8bdeSmrg`CONFIG_SITE' environment variable to the location of the site script. 2954fbc8bdeSmrgA warning: not all `configure' scripts look for a site script. 2964fbc8bdeSmrg 2974fbc8bdeSmrgDefining Variables 2984fbc8bdeSmrg================== 2994fbc8bdeSmrg 3004fbc8bdeSmrg Variables not defined in a site shell script can be set in the 3014fbc8bdeSmrgenvironment passed to `configure'. However, some packages may run 3024fbc8bdeSmrgconfigure again during the build, and the customized values of these 3034fbc8bdeSmrgvariables may be lost. In order to avoid this problem, you should set 3044fbc8bdeSmrgthem in the `configure' command line, using `VAR=value'. For example: 3054fbc8bdeSmrg 3064fbc8bdeSmrg ./configure CC=/usr/local2/bin/gcc 3074fbc8bdeSmrg 3084fbc8bdeSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 3094fbc8bdeSmrgoverridden in the site shell script). 3104fbc8bdeSmrg 3114fbc8bdeSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 3124fbc8bdeSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 3134fbc8bdeSmrg 3144fbc8bdeSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 3154fbc8bdeSmrg 3164fbc8bdeSmrg`configure' Invocation 3174fbc8bdeSmrg====================== 3184fbc8bdeSmrg 3194fbc8bdeSmrg `configure' recognizes the following options to control how it 3204fbc8bdeSmrgoperates. 3214fbc8bdeSmrg 3224fbc8bdeSmrg`--help' 3234fbc8bdeSmrg`-h' 3244fbc8bdeSmrg Print a summary of all of the options to `configure', and exit. 3254fbc8bdeSmrg 3264fbc8bdeSmrg`--help=short' 3274fbc8bdeSmrg`--help=recursive' 3284fbc8bdeSmrg Print a summary of the options unique to this package's 3294fbc8bdeSmrg `configure', and exit. The `short' variant lists options used 3304fbc8bdeSmrg only in the top level, while the `recursive' variant lists options 3314fbc8bdeSmrg also present in any nested packages. 3324fbc8bdeSmrg 3334fbc8bdeSmrg`--version' 3344fbc8bdeSmrg`-V' 3354fbc8bdeSmrg Print the version of Autoconf used to generate the `configure' 3364fbc8bdeSmrg script, and exit. 3374fbc8bdeSmrg 3384fbc8bdeSmrg`--cache-file=FILE' 3394fbc8bdeSmrg Enable the cache: use and save the results of the tests in FILE, 3404fbc8bdeSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 3414fbc8bdeSmrg disable caching. 3424fbc8bdeSmrg 3434fbc8bdeSmrg`--config-cache' 3444fbc8bdeSmrg`-C' 3454fbc8bdeSmrg Alias for `--cache-file=config.cache'. 3464fbc8bdeSmrg 3474fbc8bdeSmrg`--quiet' 3484fbc8bdeSmrg`--silent' 3494fbc8bdeSmrg`-q' 3504fbc8bdeSmrg Do not print messages saying which checks are being made. To 3514fbc8bdeSmrg suppress all normal output, redirect it to `/dev/null' (any error 3524fbc8bdeSmrg messages will still be shown). 3534fbc8bdeSmrg 3544fbc8bdeSmrg`--srcdir=DIR' 3554fbc8bdeSmrg Look for the package's source code in directory DIR. Usually 3564fbc8bdeSmrg `configure' can determine that directory automatically. 3574fbc8bdeSmrg 3584fbc8bdeSmrg`--prefix=DIR' 359fb4ebca8Smrg Use DIR as the installation prefix. *note Installation Names:: 3604fbc8bdeSmrg for more details, including other options available for fine-tuning 3614fbc8bdeSmrg the installation locations. 3624fbc8bdeSmrg 3634fbc8bdeSmrg`--no-create' 3644fbc8bdeSmrg`-n' 3654fbc8bdeSmrg Run the configure checks, but stop before creating any output 3664fbc8bdeSmrg files. 3674fbc8bdeSmrg 3684fbc8bdeSmrg`configure' also accepts some other, not widely useful, options. Run 3694fbc8bdeSmrg`configure --help' for more details. 3704fbc8bdeSmrg 371