13e6c936aSmrgInstallation Instructions 23e6c936aSmrg************************* 33e6c936aSmrg 4b0a0317aSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 5b0a0317aSmrgInc. 63e6c936aSmrg 7b0a0317aSmrg Copying and distribution of this file, with or without modification, 8b0a0317aSmrgare permitted in any medium without royalty provided the copyright 9b0a0317aSmrgnotice and this notice are preserved. This file is offered as-is, 10b0a0317aSmrgwithout warranty of any kind. 113e6c936aSmrg 123e6c936aSmrgBasic Installation 133e6c936aSmrg================== 143e6c936aSmrg 153e6c936aSmrg Briefly, the shell commands `./configure; make; make install' should 163e6c936aSmrgconfigure, build, and install this package. The following 173e6c936aSmrgmore-detailed instructions are generic; see the `README' file for 18b0a0317aSmrginstructions specific to this package. Some packages provide this 19b0a0317aSmrg`INSTALL' file but do not implement all of the features documented 20b0a0317aSmrgbelow. The lack of an optional feature in a given package is not 21b0a0317aSmrgnecessarily a bug. More recommendations for GNU packages can be found 22b0a0317aSmrgin *note Makefile Conventions: (standards)Makefile Conventions. 233e6c936aSmrg 243e6c936aSmrg The `configure' shell script attempts to guess correct values for 253e6c936aSmrgvarious system-dependent variables used during compilation. It uses 263e6c936aSmrgthose values to create a `Makefile' in each directory of the package. 273e6c936aSmrgIt may also create one or more `.h' files containing system-dependent 283e6c936aSmrgdefinitions. Finally, it creates a shell script `config.status' that 293e6c936aSmrgyou can run in the future to recreate the current configuration, and a 303e6c936aSmrgfile `config.log' containing compiler output (useful mainly for 313e6c936aSmrgdebugging `configure'). 323e6c936aSmrg 333e6c936aSmrg It can also use an optional file (typically called `config.cache' 343e6c936aSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 353e6c936aSmrgthe results of its tests to speed up reconfiguring. Caching is 363e6c936aSmrgdisabled by default to prevent problems with accidental use of stale 373e6c936aSmrgcache files. 383e6c936aSmrg 393e6c936aSmrg If you need to do unusual things to compile the package, please try 403e6c936aSmrgto figure out how `configure' could check whether to do them, and mail 413e6c936aSmrgdiffs or instructions to the address given in the `README' so they can 423e6c936aSmrgbe considered for the next release. If you are using the cache, and at 433e6c936aSmrgsome point `config.cache' contains results you don't want to keep, you 443e6c936aSmrgmay remove or edit it. 453e6c936aSmrg 463e6c936aSmrg The file `configure.ac' (or `configure.in') is used to create 473e6c936aSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 483e6c936aSmrgyou want to change it or regenerate `configure' using a newer version 493e6c936aSmrgof `autoconf'. 503e6c936aSmrg 51b0a0317aSmrg The simplest way to compile this package is: 523e6c936aSmrg 533e6c936aSmrg 1. `cd' to the directory containing the package's source code and type 543e6c936aSmrg `./configure' to configure the package for your system. 553e6c936aSmrg 563e6c936aSmrg Running `configure' might take a while. While running, it prints 573e6c936aSmrg some messages telling which features it is checking for. 583e6c936aSmrg 593e6c936aSmrg 2. Type `make' to compile the package. 603e6c936aSmrg 613e6c936aSmrg 3. Optionally, type `make check' to run any self-tests that come with 62b0a0317aSmrg the package, generally using the just-built uninstalled binaries. 633e6c936aSmrg 643e6c936aSmrg 4. Type `make install' to install the programs and any data files and 65b0a0317aSmrg documentation. When installing into a prefix owned by root, it is 66b0a0317aSmrg recommended that the package be configured and built as a regular 67b0a0317aSmrg user, and only the `make install' phase executed with root 68b0a0317aSmrg privileges. 69b0a0317aSmrg 70b0a0317aSmrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 71b0a0317aSmrg this time using the binaries in their final installed location. 72b0a0317aSmrg This target does not install anything. Running this target as a 73b0a0317aSmrg regular user, particularly if the prior `make install' required 74b0a0317aSmrg root privileges, verifies that the installation completed 75b0a0317aSmrg correctly. 76b0a0317aSmrg 77b0a0317aSmrg 6. You can remove the program binaries and object files from the 783e6c936aSmrg source code directory by typing `make clean'. To also remove the 793e6c936aSmrg files that `configure' created (so you can compile the package for 803e6c936aSmrg a different kind of computer), type `make distclean'. There is 813e6c936aSmrg also a `make maintainer-clean' target, but that is intended mainly 823e6c936aSmrg for the package's developers. If you use it, you may have to get 833e6c936aSmrg all sorts of other programs in order to regenerate files that came 843e6c936aSmrg with the distribution. 853e6c936aSmrg 86b0a0317aSmrg 7. Often, you can also type `make uninstall' to remove the installed 87b0a0317aSmrg files again. In practice, not all packages have tested that 88b0a0317aSmrg uninstallation works correctly, even though it is required by the 89b0a0317aSmrg GNU Coding Standards. 90b0a0317aSmrg 91b0a0317aSmrg 8. Some packages, particularly those that use Automake, provide `make 92b0a0317aSmrg distcheck', which can by used by developers to test that all other 93b0a0317aSmrg targets like `make install' and `make uninstall' work correctly. 94b0a0317aSmrg This target is generally not run by end users. 953e6c936aSmrg 963e6c936aSmrgCompilers and Options 973e6c936aSmrg===================== 983e6c936aSmrg 993e6c936aSmrg Some systems require unusual options for compilation or linking that 1003e6c936aSmrgthe `configure' script does not know about. Run `./configure --help' 1013e6c936aSmrgfor details on some of the pertinent environment variables. 1023e6c936aSmrg 1033e6c936aSmrg You can give `configure' initial values for configuration parameters 1043e6c936aSmrgby setting variables in the command line or in the environment. Here 1053e6c936aSmrgis an example: 1063e6c936aSmrg 1073e6c936aSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 1083e6c936aSmrg 1093e6c936aSmrg *Note Defining Variables::, for more details. 1103e6c936aSmrg 1113e6c936aSmrgCompiling For Multiple Architectures 1123e6c936aSmrg==================================== 1133e6c936aSmrg 1143e6c936aSmrg You can compile the package for more than one kind of computer at the 1153e6c936aSmrgsame time, by placing the object files for each architecture in their 1163e6c936aSmrgown directory. To do this, you can use GNU `make'. `cd' to the 1173e6c936aSmrgdirectory where you want the object files and executables to go and run 1183e6c936aSmrgthe `configure' script. `configure' automatically checks for the 119b0a0317aSmrgsource code in the directory that `configure' is in and in `..'. This 120b0a0317aSmrgis known as a "VPATH" build. 1213e6c936aSmrg 1223e6c936aSmrg With a non-GNU `make', it is safer to compile the package for one 1233e6c936aSmrgarchitecture at a time in the source code directory. After you have 1243e6c936aSmrginstalled the package for one architecture, use `make distclean' before 1253e6c936aSmrgreconfiguring for another architecture. 1263e6c936aSmrg 1273e6c936aSmrg On MacOS X 10.5 and later systems, you can create libraries and 1283e6c936aSmrgexecutables that work on multiple system types--known as "fat" or 1293e6c936aSmrg"universal" binaries--by specifying multiple `-arch' options to the 1303e6c936aSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1313e6c936aSmrgthis: 1323e6c936aSmrg 1333e6c936aSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1343e6c936aSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1353e6c936aSmrg CPP="gcc -E" CXXCPP="g++ -E" 1363e6c936aSmrg 1373e6c936aSmrg This is not guaranteed to produce working output in all cases, you 1383e6c936aSmrgmay have to build one architecture at a time and combine the results 1393e6c936aSmrgusing the `lipo' tool if you have problems. 1403e6c936aSmrg 1413e6c936aSmrgInstallation Names 1423e6c936aSmrg================== 1433e6c936aSmrg 1443e6c936aSmrg By default, `make install' installs the package's commands under 1453e6c936aSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1463e6c936aSmrgcan specify an installation prefix other than `/usr/local' by giving 147b0a0317aSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 148b0a0317aSmrgabsolute file name. 1493e6c936aSmrg 1503e6c936aSmrg You can specify separate installation prefixes for 1513e6c936aSmrgarchitecture-specific files and architecture-independent files. If you 1523e6c936aSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1533e6c936aSmrgPREFIX as the prefix for installing programs and libraries. 1543e6c936aSmrgDocumentation and other data files still use the regular prefix. 1553e6c936aSmrg 1563e6c936aSmrg In addition, if you use an unusual directory layout you can give 1573e6c936aSmrgoptions like `--bindir=DIR' to specify different values for particular 1583e6c936aSmrgkinds of files. Run `configure --help' for a list of the directories 159b0a0317aSmrgyou can set and what kinds of files go in them. In general, the 160b0a0317aSmrgdefault for these options is expressed in terms of `${prefix}', so that 161b0a0317aSmrgspecifying just `--prefix' will affect all of the other directory 162b0a0317aSmrgspecifications that were not explicitly provided. 163b0a0317aSmrg 164b0a0317aSmrg The most portable way to affect installation locations is to pass the 165b0a0317aSmrgcorrect locations to `configure'; however, many packages provide one or 166b0a0317aSmrgboth of the following shortcuts of passing variable assignments to the 167b0a0317aSmrg`make install' command line to change installation locations without 168b0a0317aSmrghaving to reconfigure or recompile. 169b0a0317aSmrg 170b0a0317aSmrg The first method involves providing an override variable for each 171b0a0317aSmrgaffected directory. For example, `make install 172b0a0317aSmrgprefix=/alternate/directory' will choose an alternate location for all 173b0a0317aSmrgdirectory configuration variables that were expressed in terms of 174b0a0317aSmrg`${prefix}'. Any directories that were specified during `configure', 175b0a0317aSmrgbut not in terms of `${prefix}', must each be overridden at install 176b0a0317aSmrgtime for the entire installation to be relocated. The approach of 177b0a0317aSmrgmakefile variable overrides for each directory variable is required by 178b0a0317aSmrgthe GNU Coding Standards, and ideally causes no recompilation. 179b0a0317aSmrgHowever, some platforms have known limitations with the semantics of 180b0a0317aSmrgshared libraries that end up requiring recompilation when using this 181b0a0317aSmrgmethod, particularly noticeable in packages that use GNU Libtool. 182b0a0317aSmrg 183b0a0317aSmrg The second method involves providing the `DESTDIR' variable. For 184b0a0317aSmrgexample, `make install DESTDIR=/alternate/directory' will prepend 185b0a0317aSmrg`/alternate/directory' before all installation names. The approach of 186b0a0317aSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 187b0a0317aSmrgdoes not work on platforms that have drive letters. On the other hand, 188b0a0317aSmrgit does better at avoiding recompilation issues, and works well even 189b0a0317aSmrgwhen some directory options were not specified in terms of `${prefix}' 190b0a0317aSmrgat `configure' time. 191b0a0317aSmrg 192b0a0317aSmrgOptional Features 193b0a0317aSmrg================= 1943e6c936aSmrg 1953e6c936aSmrg If the package supports it, you can cause programs to be installed 1963e6c936aSmrgwith an extra prefix or suffix on their names by giving `configure' the 1973e6c936aSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1983e6c936aSmrg 1993e6c936aSmrg Some packages pay attention to `--enable-FEATURE' options to 2003e6c936aSmrg`configure', where FEATURE indicates an optional part of the package. 2013e6c936aSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 2023e6c936aSmrgis something like `gnu-as' or `x' (for the X Window System). The 2033e6c936aSmrg`README' should mention any `--enable-' and `--with-' options that the 2043e6c936aSmrgpackage recognizes. 2053e6c936aSmrg 2063e6c936aSmrg For packages that use the X Window System, `configure' can usually 2073e6c936aSmrgfind the X include and library files automatically, but if it doesn't, 2083e6c936aSmrgyou can use the `configure' options `--x-includes=DIR' and 2093e6c936aSmrg`--x-libraries=DIR' to specify their locations. 2103e6c936aSmrg 211b0a0317aSmrg Some packages offer the ability to configure how verbose the 212b0a0317aSmrgexecution of `make' will be. For these packages, running `./configure 213b0a0317aSmrg--enable-silent-rules' sets the default to minimal output, which can be 214b0a0317aSmrgoverridden with `make V=1'; while running `./configure 215b0a0317aSmrg--disable-silent-rules' sets the default to verbose, which can be 216b0a0317aSmrgoverridden with `make V=0'. 217b0a0317aSmrg 2183e6c936aSmrgParticular systems 2193e6c936aSmrg================== 2203e6c936aSmrg 2213e6c936aSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 2223e6c936aSmrgCC is not installed, it is recommended to use the following options in 2233e6c936aSmrgorder to use an ANSI C compiler: 2243e6c936aSmrg 225b0a0317aSmrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 2263e6c936aSmrg 2273e6c936aSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 2283e6c936aSmrg 229b0a0317aSmrg HP-UX `make' updates targets which have the same time stamps as 230b0a0317aSmrgtheir prerequisites, which makes it generally unusable when shipped 231b0a0317aSmrggenerated files such as `configure' are involved. Use GNU `make' 232b0a0317aSmrginstead. 233b0a0317aSmrg 2343e6c936aSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 2353e6c936aSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 2363e6c936aSmrga workaround. If GNU CC is not installed, it is therefore recommended 2373e6c936aSmrgto try 2383e6c936aSmrg 2393e6c936aSmrg ./configure CC="cc" 2403e6c936aSmrg 2413e6c936aSmrgand if that doesn't work, try 2423e6c936aSmrg 2433e6c936aSmrg ./configure CC="cc -nodtk" 2443e6c936aSmrg 245b0a0317aSmrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 246b0a0317aSmrgdirectory contains several dysfunctional programs; working variants of 247b0a0317aSmrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 248b0a0317aSmrgin your `PATH', put it _after_ `/usr/bin'. 249b0a0317aSmrg 250b0a0317aSmrg On Haiku, software installed for all users goes in `/boot/common', 251b0a0317aSmrgnot `/usr/local'. It is recommended to use the following options: 252b0a0317aSmrg 253b0a0317aSmrg ./configure --prefix=/boot/common 254b0a0317aSmrg 2553e6c936aSmrgSpecifying the System Type 2563e6c936aSmrg========================== 2573e6c936aSmrg 2583e6c936aSmrg There may be some features `configure' cannot figure out 2593e6c936aSmrgautomatically, but needs to determine by the type of machine the package 2603e6c936aSmrgwill run on. Usually, assuming the package is built to be run on the 2613e6c936aSmrg_same_ architectures, `configure' can figure that out, but if it prints 2623e6c936aSmrga message saying it cannot guess the machine type, give it the 2633e6c936aSmrg`--build=TYPE' option. TYPE can either be a short name for the system 2643e6c936aSmrgtype, such as `sun4', or a canonical name which has the form: 2653e6c936aSmrg 2663e6c936aSmrg CPU-COMPANY-SYSTEM 2673e6c936aSmrg 2683e6c936aSmrgwhere SYSTEM can have one of these forms: 2693e6c936aSmrg 270b0a0317aSmrg OS 271b0a0317aSmrg KERNEL-OS 2723e6c936aSmrg 2733e6c936aSmrg See the file `config.sub' for the possible values of each field. If 2743e6c936aSmrg`config.sub' isn't included in this package, then this package doesn't 2753e6c936aSmrgneed to know the machine type. 2763e6c936aSmrg 2773e6c936aSmrg If you are _building_ compiler tools for cross-compiling, you should 2783e6c936aSmrguse the option `--target=TYPE' to select the type of system they will 2793e6c936aSmrgproduce code for. 2803e6c936aSmrg 2813e6c936aSmrg If you want to _use_ a cross compiler, that generates code for a 2823e6c936aSmrgplatform different from the build platform, you should specify the 2833e6c936aSmrg"host" platform (i.e., that on which the generated programs will 2843e6c936aSmrgeventually be run) with `--host=TYPE'. 2853e6c936aSmrg 2863e6c936aSmrgSharing Defaults 2873e6c936aSmrg================ 2883e6c936aSmrg 2893e6c936aSmrg If you want to set default values for `configure' scripts to share, 2903e6c936aSmrgyou can create a site shell script called `config.site' that gives 2913e6c936aSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2923e6c936aSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2933e6c936aSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2943e6c936aSmrg`CONFIG_SITE' environment variable to the location of the site script. 2953e6c936aSmrgA warning: not all `configure' scripts look for a site script. 2963e6c936aSmrg 2973e6c936aSmrgDefining Variables 2983e6c936aSmrg================== 2993e6c936aSmrg 3003e6c936aSmrg Variables not defined in a site shell script can be set in the 3013e6c936aSmrgenvironment passed to `configure'. However, some packages may run 3023e6c936aSmrgconfigure again during the build, and the customized values of these 3033e6c936aSmrgvariables may be lost. In order to avoid this problem, you should set 3043e6c936aSmrgthem in the `configure' command line, using `VAR=value'. For example: 3053e6c936aSmrg 3063e6c936aSmrg ./configure CC=/usr/local2/bin/gcc 3073e6c936aSmrg 3083e6c936aSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 3093e6c936aSmrgoverridden in the site shell script). 3103e6c936aSmrg 3113e6c936aSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 3123e6c936aSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 3133e6c936aSmrg 3143e6c936aSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 3153e6c936aSmrg 3163e6c936aSmrg`configure' Invocation 3173e6c936aSmrg====================== 3183e6c936aSmrg 3193e6c936aSmrg `configure' recognizes the following options to control how it 3203e6c936aSmrgoperates. 3213e6c936aSmrg 3223e6c936aSmrg`--help' 3233e6c936aSmrg`-h' 3243e6c936aSmrg Print a summary of all of the options to `configure', and exit. 3253e6c936aSmrg 3263e6c936aSmrg`--help=short' 3273e6c936aSmrg`--help=recursive' 3283e6c936aSmrg Print a summary of the options unique to this package's 3293e6c936aSmrg `configure', and exit. The `short' variant lists options used 3303e6c936aSmrg only in the top level, while the `recursive' variant lists options 3313e6c936aSmrg also present in any nested packages. 3323e6c936aSmrg 3333e6c936aSmrg`--version' 3343e6c936aSmrg`-V' 3353e6c936aSmrg Print the version of Autoconf used to generate the `configure' 3363e6c936aSmrg script, and exit. 3373e6c936aSmrg 3383e6c936aSmrg`--cache-file=FILE' 3393e6c936aSmrg Enable the cache: use and save the results of the tests in FILE, 3403e6c936aSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 3413e6c936aSmrg disable caching. 3423e6c936aSmrg 3433e6c936aSmrg`--config-cache' 3443e6c936aSmrg`-C' 3453e6c936aSmrg Alias for `--cache-file=config.cache'. 3463e6c936aSmrg 3473e6c936aSmrg`--quiet' 3483e6c936aSmrg`--silent' 3493e6c936aSmrg`-q' 3503e6c936aSmrg Do not print messages saying which checks are being made. To 3513e6c936aSmrg suppress all normal output, redirect it to `/dev/null' (any error 3523e6c936aSmrg messages will still be shown). 3533e6c936aSmrg 3543e6c936aSmrg`--srcdir=DIR' 3553e6c936aSmrg Look for the package's source code in directory DIR. Usually 3563e6c936aSmrg `configure' can determine that directory automatically. 3573e6c936aSmrg 3583e6c936aSmrg`--prefix=DIR' 359b0a0317aSmrg Use DIR as the installation prefix. *note Installation Names:: 3603e6c936aSmrg for more details, including other options available for fine-tuning 3613e6c936aSmrg the installation locations. 3623e6c936aSmrg 3633e6c936aSmrg`--no-create' 3643e6c936aSmrg`-n' 3653e6c936aSmrg Run the configure checks, but stop before creating any output 3663e6c936aSmrg files. 3673e6c936aSmrg 3683e6c936aSmrg`configure' also accepts some other, not widely useful, options. Run 3693e6c936aSmrg`configure --help' for more details. 3703e6c936aSmrg 371