12d1d20fcSmrgInstallation Instructions 22d1d20fcSmrg************************* 32d1d20fcSmrg 480f56f3aSmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 580f56f3aSmrgInc. 62d1d20fcSmrg 780f56f3aSmrg Copying and distribution of this file, with or without modification, 880f56f3aSmrgare permitted in any medium without royalty provided the copyright 980f56f3aSmrgnotice and this notice are preserved. This file is offered as-is, 1080f56f3aSmrgwithout warranty of any kind. 112d1d20fcSmrg 122d1d20fcSmrgBasic Installation 132d1d20fcSmrg================== 142d1d20fcSmrg 152d1d20fcSmrg Briefly, the shell commands `./configure; make; make install' should 162d1d20fcSmrgconfigure, build, and install this package. The following 172d1d20fcSmrgmore-detailed instructions are generic; see the `README' file for 1880f56f3aSmrginstructions specific to this package. Some packages provide this 1980f56f3aSmrg`INSTALL' file but do not implement all of the features documented 2080f56f3aSmrgbelow. The lack of an optional feature in a given package is not 2180f56f3aSmrgnecessarily a bug. More recommendations for GNU packages can be found 2280f56f3aSmrgin *note Makefile Conventions: (standards)Makefile Conventions. 232d1d20fcSmrg 242d1d20fcSmrg The `configure' shell script attempts to guess correct values for 252d1d20fcSmrgvarious system-dependent variables used during compilation. It uses 262d1d20fcSmrgthose values to create a `Makefile' in each directory of the package. 272d1d20fcSmrgIt may also create one or more `.h' files containing system-dependent 282d1d20fcSmrgdefinitions. Finally, it creates a shell script `config.status' that 292d1d20fcSmrgyou can run in the future to recreate the current configuration, and a 302d1d20fcSmrgfile `config.log' containing compiler output (useful mainly for 312d1d20fcSmrgdebugging `configure'). 322d1d20fcSmrg 332d1d20fcSmrg It can also use an optional file (typically called `config.cache' 342d1d20fcSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 352d1d20fcSmrgthe results of its tests to speed up reconfiguring. Caching is 362d1d20fcSmrgdisabled by default to prevent problems with accidental use of stale 372d1d20fcSmrgcache files. 382d1d20fcSmrg 392d1d20fcSmrg If you need to do unusual things to compile the package, please try 402d1d20fcSmrgto figure out how `configure' could check whether to do them, and mail 412d1d20fcSmrgdiffs or instructions to the address given in the `README' so they can 422d1d20fcSmrgbe considered for the next release. If you are using the cache, and at 432d1d20fcSmrgsome point `config.cache' contains results you don't want to keep, you 442d1d20fcSmrgmay remove or edit it. 452d1d20fcSmrg 462d1d20fcSmrg The file `configure.ac' (or `configure.in') is used to create 472d1d20fcSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 482d1d20fcSmrgyou want to change it or regenerate `configure' using a newer version 492d1d20fcSmrgof `autoconf'. 502d1d20fcSmrg 5180f56f3aSmrg The simplest way to compile this package is: 522d1d20fcSmrg 532d1d20fcSmrg 1. `cd' to the directory containing the package's source code and type 542d1d20fcSmrg `./configure' to configure the package for your system. 552d1d20fcSmrg 562d1d20fcSmrg Running `configure' might take a while. While running, it prints 572d1d20fcSmrg some messages telling which features it is checking for. 582d1d20fcSmrg 592d1d20fcSmrg 2. Type `make' to compile the package. 602d1d20fcSmrg 612d1d20fcSmrg 3. Optionally, type `make check' to run any self-tests that come with 6280f56f3aSmrg the package, generally using the just-built uninstalled binaries. 632d1d20fcSmrg 642d1d20fcSmrg 4. Type `make install' to install the programs and any data files and 6580f56f3aSmrg documentation. When installing into a prefix owned by root, it is 6680f56f3aSmrg recommended that the package be configured and built as a regular 6780f56f3aSmrg user, and only the `make install' phase executed with root 6880f56f3aSmrg privileges. 6980f56f3aSmrg 7080f56f3aSmrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7180f56f3aSmrg this time using the binaries in their final installed location. 7280f56f3aSmrg This target does not install anything. Running this target as a 7380f56f3aSmrg regular user, particularly if the prior `make install' required 7480f56f3aSmrg root privileges, verifies that the installation completed 7580f56f3aSmrg correctly. 7680f56f3aSmrg 7780f56f3aSmrg 6. You can remove the program binaries and object files from the 782d1d20fcSmrg source code directory by typing `make clean'. To also remove the 792d1d20fcSmrg files that `configure' created (so you can compile the package for 802d1d20fcSmrg a different kind of computer), type `make distclean'. There is 812d1d20fcSmrg also a `make maintainer-clean' target, but that is intended mainly 822d1d20fcSmrg for the package's developers. If you use it, you may have to get 832d1d20fcSmrg all sorts of other programs in order to regenerate files that came 842d1d20fcSmrg with the distribution. 852d1d20fcSmrg 8680f56f3aSmrg 7. Often, you can also type `make uninstall' to remove the installed 8780f56f3aSmrg files again. In practice, not all packages have tested that 8880f56f3aSmrg uninstallation works correctly, even though it is required by the 8980f56f3aSmrg GNU Coding Standards. 9080f56f3aSmrg 9180f56f3aSmrg 8. Some packages, particularly those that use Automake, provide `make 9280f56f3aSmrg distcheck', which can by used by developers to test that all other 9380f56f3aSmrg targets like `make install' and `make uninstall' work correctly. 9480f56f3aSmrg This target is generally not run by end users. 952d1d20fcSmrg 962d1d20fcSmrgCompilers and Options 972d1d20fcSmrg===================== 982d1d20fcSmrg 992d1d20fcSmrg Some systems require unusual options for compilation or linking that 1002d1d20fcSmrgthe `configure' script does not know about. Run `./configure --help' 1012d1d20fcSmrgfor details on some of the pertinent environment variables. 1022d1d20fcSmrg 1032d1d20fcSmrg You can give `configure' initial values for configuration parameters 1042d1d20fcSmrgby setting variables in the command line or in the environment. Here 1052d1d20fcSmrgis an example: 1062d1d20fcSmrg 1072d1d20fcSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 1082d1d20fcSmrg 1092d1d20fcSmrg *Note Defining Variables::, for more details. 1102d1d20fcSmrg 1112d1d20fcSmrgCompiling For Multiple Architectures 1122d1d20fcSmrg==================================== 1132d1d20fcSmrg 1142d1d20fcSmrg You can compile the package for more than one kind of computer at the 1152d1d20fcSmrgsame time, by placing the object files for each architecture in their 1162d1d20fcSmrgown directory. To do this, you can use GNU `make'. `cd' to the 1172d1d20fcSmrgdirectory where you want the object files and executables to go and run 1182d1d20fcSmrgthe `configure' script. `configure' automatically checks for the 11980f56f3aSmrgsource code in the directory that `configure' is in and in `..'. This 12080f56f3aSmrgis known as a "VPATH" build. 1212d1d20fcSmrg 1222d1d20fcSmrg With a non-GNU `make', it is safer to compile the package for one 1232d1d20fcSmrgarchitecture at a time in the source code directory. After you have 1242d1d20fcSmrginstalled the package for one architecture, use `make distclean' before 1252d1d20fcSmrgreconfiguring for another architecture. 1262d1d20fcSmrg 1272d1d20fcSmrg On MacOS X 10.5 and later systems, you can create libraries and 1282d1d20fcSmrgexecutables that work on multiple system types--known as "fat" or 1292d1d20fcSmrg"universal" binaries--by specifying multiple `-arch' options to the 1302d1d20fcSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1312d1d20fcSmrgthis: 1322d1d20fcSmrg 1332d1d20fcSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1342d1d20fcSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1352d1d20fcSmrg CPP="gcc -E" CXXCPP="g++ -E" 1362d1d20fcSmrg 1372d1d20fcSmrg This is not guaranteed to produce working output in all cases, you 1382d1d20fcSmrgmay have to build one architecture at a time and combine the results 1392d1d20fcSmrgusing the `lipo' tool if you have problems. 1402d1d20fcSmrg 1412d1d20fcSmrgInstallation Names 1422d1d20fcSmrg================== 1432d1d20fcSmrg 1442d1d20fcSmrg By default, `make install' installs the package's commands under 1452d1d20fcSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1462d1d20fcSmrgcan specify an installation prefix other than `/usr/local' by giving 14780f56f3aSmrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14880f56f3aSmrgabsolute file name. 1492d1d20fcSmrg 1502d1d20fcSmrg You can specify separate installation prefixes for 1512d1d20fcSmrgarchitecture-specific files and architecture-independent files. If you 1522d1d20fcSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1532d1d20fcSmrgPREFIX as the prefix for installing programs and libraries. 1542d1d20fcSmrgDocumentation and other data files still use the regular prefix. 1552d1d20fcSmrg 1562d1d20fcSmrg In addition, if you use an unusual directory layout you can give 1572d1d20fcSmrgoptions like `--bindir=DIR' to specify different values for particular 1582d1d20fcSmrgkinds of files. Run `configure --help' for a list of the directories 15980f56f3aSmrgyou can set and what kinds of files go in them. In general, the 16080f56f3aSmrgdefault for these options is expressed in terms of `${prefix}', so that 16180f56f3aSmrgspecifying just `--prefix' will affect all of the other directory 16280f56f3aSmrgspecifications that were not explicitly provided. 16380f56f3aSmrg 16480f56f3aSmrg The most portable way to affect installation locations is to pass the 16580f56f3aSmrgcorrect locations to `configure'; however, many packages provide one or 16680f56f3aSmrgboth of the following shortcuts of passing variable assignments to the 16780f56f3aSmrg`make install' command line to change installation locations without 16880f56f3aSmrghaving to reconfigure or recompile. 16980f56f3aSmrg 17080f56f3aSmrg The first method involves providing an override variable for each 17180f56f3aSmrgaffected directory. For example, `make install 17280f56f3aSmrgprefix=/alternate/directory' will choose an alternate location for all 17380f56f3aSmrgdirectory configuration variables that were expressed in terms of 17480f56f3aSmrg`${prefix}'. Any directories that were specified during `configure', 17580f56f3aSmrgbut not in terms of `${prefix}', must each be overridden at install 17680f56f3aSmrgtime for the entire installation to be relocated. The approach of 17780f56f3aSmrgmakefile variable overrides for each directory variable is required by 17880f56f3aSmrgthe GNU Coding Standards, and ideally causes no recompilation. 17980f56f3aSmrgHowever, some platforms have known limitations with the semantics of 18080f56f3aSmrgshared libraries that end up requiring recompilation when using this 18180f56f3aSmrgmethod, particularly noticeable in packages that use GNU Libtool. 18280f56f3aSmrg 18380f56f3aSmrg The second method involves providing the `DESTDIR' variable. For 18480f56f3aSmrgexample, `make install DESTDIR=/alternate/directory' will prepend 18580f56f3aSmrg`/alternate/directory' before all installation names. The approach of 18680f56f3aSmrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18780f56f3aSmrgdoes not work on platforms that have drive letters. On the other hand, 18880f56f3aSmrgit does better at avoiding recompilation issues, and works well even 18980f56f3aSmrgwhen some directory options were not specified in terms of `${prefix}' 19080f56f3aSmrgat `configure' time. 19180f56f3aSmrg 19280f56f3aSmrgOptional Features 19380f56f3aSmrg================= 1942d1d20fcSmrg 1952d1d20fcSmrg If the package supports it, you can cause programs to be installed 1962d1d20fcSmrgwith an extra prefix or suffix on their names by giving `configure' the 1972d1d20fcSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1982d1d20fcSmrg 1992d1d20fcSmrg Some packages pay attention to `--enable-FEATURE' options to 2002d1d20fcSmrg`configure', where FEATURE indicates an optional part of the package. 2012d1d20fcSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 2022d1d20fcSmrgis something like `gnu-as' or `x' (for the X Window System). The 2032d1d20fcSmrg`README' should mention any `--enable-' and `--with-' options that the 2042d1d20fcSmrgpackage recognizes. 2052d1d20fcSmrg 2062d1d20fcSmrg For packages that use the X Window System, `configure' can usually 2072d1d20fcSmrgfind the X include and library files automatically, but if it doesn't, 2082d1d20fcSmrgyou can use the `configure' options `--x-includes=DIR' and 2092d1d20fcSmrg`--x-libraries=DIR' to specify their locations. 2102d1d20fcSmrg 21180f56f3aSmrg Some packages offer the ability to configure how verbose the 21280f56f3aSmrgexecution of `make' will be. For these packages, running `./configure 21380f56f3aSmrg--enable-silent-rules' sets the default to minimal output, which can be 21480f56f3aSmrgoverridden with `make V=1'; while running `./configure 21580f56f3aSmrg--disable-silent-rules' sets the default to verbose, which can be 21680f56f3aSmrgoverridden with `make V=0'. 21780f56f3aSmrg 2182d1d20fcSmrgParticular systems 2192d1d20fcSmrg================== 2202d1d20fcSmrg 2212d1d20fcSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 2222d1d20fcSmrgCC is not installed, it is recommended to use the following options in 2232d1d20fcSmrgorder to use an ANSI C compiler: 2242d1d20fcSmrg 22580f56f3aSmrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 2262d1d20fcSmrg 2272d1d20fcSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 2282d1d20fcSmrg 22980f56f3aSmrg HP-UX `make' updates targets which have the same time stamps as 23080f56f3aSmrgtheir prerequisites, which makes it generally unusable when shipped 23180f56f3aSmrggenerated files such as `configure' are involved. Use GNU `make' 23280f56f3aSmrginstead. 23380f56f3aSmrg 2342d1d20fcSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 2352d1d20fcSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 2362d1d20fcSmrga workaround. If GNU CC is not installed, it is therefore recommended 2372d1d20fcSmrgto try 2382d1d20fcSmrg 2392d1d20fcSmrg ./configure CC="cc" 2402d1d20fcSmrg 2412d1d20fcSmrgand if that doesn't work, try 2422d1d20fcSmrg 2432d1d20fcSmrg ./configure CC="cc -nodtk" 2442d1d20fcSmrg 24580f56f3aSmrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24680f56f3aSmrgdirectory contains several dysfunctional programs; working variants of 24780f56f3aSmrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24880f56f3aSmrgin your `PATH', put it _after_ `/usr/bin'. 24980f56f3aSmrg 25080f56f3aSmrg On Haiku, software installed for all users goes in `/boot/common', 25180f56f3aSmrgnot `/usr/local'. It is recommended to use the following options: 25280f56f3aSmrg 25380f56f3aSmrg ./configure --prefix=/boot/common 25480f56f3aSmrg 2552d1d20fcSmrgSpecifying the System Type 2562d1d20fcSmrg========================== 2572d1d20fcSmrg 2582d1d20fcSmrg There may be some features `configure' cannot figure out 2592d1d20fcSmrgautomatically, but needs to determine by the type of machine the package 2602d1d20fcSmrgwill run on. Usually, assuming the package is built to be run on the 2612d1d20fcSmrg_same_ architectures, `configure' can figure that out, but if it prints 2622d1d20fcSmrga message saying it cannot guess the machine type, give it the 2632d1d20fcSmrg`--build=TYPE' option. TYPE can either be a short name for the system 2642d1d20fcSmrgtype, such as `sun4', or a canonical name which has the form: 2652d1d20fcSmrg 2662d1d20fcSmrg CPU-COMPANY-SYSTEM 2672d1d20fcSmrg 2682d1d20fcSmrgwhere SYSTEM can have one of these forms: 2692d1d20fcSmrg 27080f56f3aSmrg OS 27180f56f3aSmrg KERNEL-OS 2722d1d20fcSmrg 2732d1d20fcSmrg See the file `config.sub' for the possible values of each field. If 2742d1d20fcSmrg`config.sub' isn't included in this package, then this package doesn't 2752d1d20fcSmrgneed to know the machine type. 2762d1d20fcSmrg 2772d1d20fcSmrg If you are _building_ compiler tools for cross-compiling, you should 2782d1d20fcSmrguse the option `--target=TYPE' to select the type of system they will 2792d1d20fcSmrgproduce code for. 2802d1d20fcSmrg 2812d1d20fcSmrg If you want to _use_ a cross compiler, that generates code for a 2822d1d20fcSmrgplatform different from the build platform, you should specify the 2832d1d20fcSmrg"host" platform (i.e., that on which the generated programs will 2842d1d20fcSmrgeventually be run) with `--host=TYPE'. 2852d1d20fcSmrg 2862d1d20fcSmrgSharing Defaults 2872d1d20fcSmrg================ 2882d1d20fcSmrg 2892d1d20fcSmrg If you want to set default values for `configure' scripts to share, 2902d1d20fcSmrgyou can create a site shell script called `config.site' that gives 2912d1d20fcSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2922d1d20fcSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2932d1d20fcSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2942d1d20fcSmrg`CONFIG_SITE' environment variable to the location of the site script. 2952d1d20fcSmrgA warning: not all `configure' scripts look for a site script. 2962d1d20fcSmrg 2972d1d20fcSmrgDefining Variables 2982d1d20fcSmrg================== 2992d1d20fcSmrg 3002d1d20fcSmrg Variables not defined in a site shell script can be set in the 3012d1d20fcSmrgenvironment passed to `configure'. However, some packages may run 3022d1d20fcSmrgconfigure again during the build, and the customized values of these 3032d1d20fcSmrgvariables may be lost. In order to avoid this problem, you should set 3042d1d20fcSmrgthem in the `configure' command line, using `VAR=value'. For example: 3052d1d20fcSmrg 3062d1d20fcSmrg ./configure CC=/usr/local2/bin/gcc 3072d1d20fcSmrg 3082d1d20fcSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 3092d1d20fcSmrgoverridden in the site shell script). 3102d1d20fcSmrg 3112d1d20fcSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 3122d1d20fcSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 3132d1d20fcSmrg 3142d1d20fcSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 3152d1d20fcSmrg 3162d1d20fcSmrg`configure' Invocation 3172d1d20fcSmrg====================== 3182d1d20fcSmrg 3192d1d20fcSmrg `configure' recognizes the following options to control how it 3202d1d20fcSmrgoperates. 3212d1d20fcSmrg 3222d1d20fcSmrg`--help' 3232d1d20fcSmrg`-h' 3242d1d20fcSmrg Print a summary of all of the options to `configure', and exit. 3252d1d20fcSmrg 3262d1d20fcSmrg`--help=short' 3272d1d20fcSmrg`--help=recursive' 3282d1d20fcSmrg Print a summary of the options unique to this package's 3292d1d20fcSmrg `configure', and exit. The `short' variant lists options used 3302d1d20fcSmrg only in the top level, while the `recursive' variant lists options 3312d1d20fcSmrg also present in any nested packages. 3322d1d20fcSmrg 3332d1d20fcSmrg`--version' 3342d1d20fcSmrg`-V' 3352d1d20fcSmrg Print the version of Autoconf used to generate the `configure' 3362d1d20fcSmrg script, and exit. 3372d1d20fcSmrg 3382d1d20fcSmrg`--cache-file=FILE' 3392d1d20fcSmrg Enable the cache: use and save the results of the tests in FILE, 3402d1d20fcSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 3412d1d20fcSmrg disable caching. 3422d1d20fcSmrg 3432d1d20fcSmrg`--config-cache' 3442d1d20fcSmrg`-C' 3452d1d20fcSmrg Alias for `--cache-file=config.cache'. 3462d1d20fcSmrg 3472d1d20fcSmrg`--quiet' 3482d1d20fcSmrg`--silent' 3492d1d20fcSmrg`-q' 3502d1d20fcSmrg Do not print messages saying which checks are being made. To 3512d1d20fcSmrg suppress all normal output, redirect it to `/dev/null' (any error 3522d1d20fcSmrg messages will still be shown). 3532d1d20fcSmrg 3542d1d20fcSmrg`--srcdir=DIR' 3552d1d20fcSmrg Look for the package's source code in directory DIR. Usually 3562d1d20fcSmrg `configure' can determine that directory automatically. 3572d1d20fcSmrg 3582d1d20fcSmrg`--prefix=DIR' 35980f56f3aSmrg Use DIR as the installation prefix. *note Installation Names:: 3602d1d20fcSmrg for more details, including other options available for fine-tuning 3612d1d20fcSmrg the installation locations. 3622d1d20fcSmrg 3632d1d20fcSmrg`--no-create' 3642d1d20fcSmrg`-n' 3652d1d20fcSmrg Run the configure checks, but stop before creating any output 3662d1d20fcSmrg files. 3672d1d20fcSmrg 3682d1d20fcSmrg`configure' also accepts some other, not widely useful, options. Run 3692d1d20fcSmrg`configure --help' for more details. 3702d1d20fcSmrg 371