INSTALL revision 36e956c5
15f5b92ffSmrgInstallation Instructions 25f5b92ffSmrg************************* 35f5b92ffSmrg 436e956c5SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 536e956c5SmrgInc. 65f5b92ffSmrg 736e956c5Smrg Copying and distribution of this file, with or without modification, 836e956c5Smrgare permitted in any medium without royalty provided the copyright 936e956c5Smrgnotice and this notice are preserved. This file is offered as-is, 1036e956c5Smrgwithout warranty of any kind. 115f5b92ffSmrg 125f5b92ffSmrgBasic Installation 135f5b92ffSmrg================== 145f5b92ffSmrg 155f5b92ffSmrg Briefly, the shell commands `./configure; make; make install' should 165f5b92ffSmrgconfigure, build, and install this package. The following 175f5b92ffSmrgmore-detailed instructions are generic; see the `README' file for 1836e956c5Smrginstructions specific to this package. Some packages provide this 1936e956c5Smrg`INSTALL' file but do not implement all of the features documented 2036e956c5Smrgbelow. The lack of an optional feature in a given package is not 2136e956c5Smrgnecessarily a bug. More recommendations for GNU packages can be found 2236e956c5Smrgin *note Makefile Conventions: (standards)Makefile Conventions. 235f5b92ffSmrg 245f5b92ffSmrg The `configure' shell script attempts to guess correct values for 255f5b92ffSmrgvarious system-dependent variables used during compilation. It uses 265f5b92ffSmrgthose values to create a `Makefile' in each directory of the package. 275f5b92ffSmrgIt may also create one or more `.h' files containing system-dependent 285f5b92ffSmrgdefinitions. Finally, it creates a shell script `config.status' that 295f5b92ffSmrgyou can run in the future to recreate the current configuration, and a 305f5b92ffSmrgfile `config.log' containing compiler output (useful mainly for 315f5b92ffSmrgdebugging `configure'). 325f5b92ffSmrg 335f5b92ffSmrg It can also use an optional file (typically called `config.cache' 345f5b92ffSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 355f5b92ffSmrgthe results of its tests to speed up reconfiguring. Caching is 365f5b92ffSmrgdisabled by default to prevent problems with accidental use of stale 375f5b92ffSmrgcache files. 385f5b92ffSmrg 395f5b92ffSmrg If you need to do unusual things to compile the package, please try 405f5b92ffSmrgto figure out how `configure' could check whether to do them, and mail 415f5b92ffSmrgdiffs or instructions to the address given in the `README' so they can 425f5b92ffSmrgbe considered for the next release. If you are using the cache, and at 435f5b92ffSmrgsome point `config.cache' contains results you don't want to keep, you 445f5b92ffSmrgmay remove or edit it. 455f5b92ffSmrg 465f5b92ffSmrg The file `configure.ac' (or `configure.in') is used to create 475f5b92ffSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 485f5b92ffSmrgyou want to change it or regenerate `configure' using a newer version 495f5b92ffSmrgof `autoconf'. 505f5b92ffSmrg 5136e956c5Smrg The simplest way to compile this package is: 525f5b92ffSmrg 535f5b92ffSmrg 1. `cd' to the directory containing the package's source code and type 545f5b92ffSmrg `./configure' to configure the package for your system. 555f5b92ffSmrg 565f5b92ffSmrg Running `configure' might take a while. While running, it prints 575f5b92ffSmrg some messages telling which features it is checking for. 585f5b92ffSmrg 595f5b92ffSmrg 2. Type `make' to compile the package. 605f5b92ffSmrg 615f5b92ffSmrg 3. Optionally, type `make check' to run any self-tests that come with 6236e956c5Smrg the package, generally using the just-built uninstalled binaries. 635f5b92ffSmrg 645f5b92ffSmrg 4. Type `make install' to install the programs and any data files and 6536e956c5Smrg documentation. When installing into a prefix owned by root, it is 6636e956c5Smrg recommended that the package be configured and built as a regular 6736e956c5Smrg user, and only the `make install' phase executed with root 6836e956c5Smrg privileges. 6936e956c5Smrg 7036e956c5Smrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7136e956c5Smrg this time using the binaries in their final installed location. 7236e956c5Smrg This target does not install anything. Running this target as a 7336e956c5Smrg regular user, particularly if the prior `make install' required 7436e956c5Smrg root privileges, verifies that the installation completed 7536e956c5Smrg correctly. 7636e956c5Smrg 7736e956c5Smrg 6. You can remove the program binaries and object files from the 785f5b92ffSmrg source code directory by typing `make clean'. To also remove the 795f5b92ffSmrg files that `configure' created (so you can compile the package for 805f5b92ffSmrg a different kind of computer), type `make distclean'. There is 815f5b92ffSmrg also a `make maintainer-clean' target, but that is intended mainly 825f5b92ffSmrg for the package's developers. If you use it, you may have to get 835f5b92ffSmrg all sorts of other programs in order to regenerate files that came 845f5b92ffSmrg with the distribution. 855f5b92ffSmrg 8636e956c5Smrg 7. Often, you can also type `make uninstall' to remove the installed 8736e956c5Smrg files again. In practice, not all packages have tested that 8836e956c5Smrg uninstallation works correctly, even though it is required by the 8936e956c5Smrg GNU Coding Standards. 9036e956c5Smrg 9136e956c5Smrg 8. Some packages, particularly those that use Automake, provide `make 9236e956c5Smrg distcheck', which can by used by developers to test that all other 9336e956c5Smrg targets like `make install' and `make uninstall' work correctly. 9436e956c5Smrg This target is generally not run by end users. 955f5b92ffSmrg 965f5b92ffSmrgCompilers and Options 975f5b92ffSmrg===================== 985f5b92ffSmrg 995f5b92ffSmrg Some systems require unusual options for compilation or linking that 1005f5b92ffSmrgthe `configure' script does not know about. Run `./configure --help' 1015f5b92ffSmrgfor details on some of the pertinent environment variables. 1025f5b92ffSmrg 1035f5b92ffSmrg You can give `configure' initial values for configuration parameters 1045f5b92ffSmrgby setting variables in the command line or in the environment. Here 1055f5b92ffSmrgis an example: 1065f5b92ffSmrg 1075f5b92ffSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 1085f5b92ffSmrg 1095f5b92ffSmrg *Note Defining Variables::, for more details. 1105f5b92ffSmrg 1115f5b92ffSmrgCompiling For Multiple Architectures 1125f5b92ffSmrg==================================== 1135f5b92ffSmrg 1145f5b92ffSmrg You can compile the package for more than one kind of computer at the 1155f5b92ffSmrgsame time, by placing the object files for each architecture in their 1165f5b92ffSmrgown directory. To do this, you can use GNU `make'. `cd' to the 1175f5b92ffSmrgdirectory where you want the object files and executables to go and run 1185f5b92ffSmrgthe `configure' script. `configure' automatically checks for the 11936e956c5Smrgsource code in the directory that `configure' is in and in `..'. This 12036e956c5Smrgis known as a "VPATH" build. 1215f5b92ffSmrg 1225f5b92ffSmrg With a non-GNU `make', it is safer to compile the package for one 1235f5b92ffSmrgarchitecture at a time in the source code directory. After you have 1245f5b92ffSmrginstalled the package for one architecture, use `make distclean' before 1255f5b92ffSmrgreconfiguring for another architecture. 1265f5b92ffSmrg 1275f5b92ffSmrg On MacOS X 10.5 and later systems, you can create libraries and 1285f5b92ffSmrgexecutables that work on multiple system types--known as "fat" or 1295f5b92ffSmrg"universal" binaries--by specifying multiple `-arch' options to the 1305f5b92ffSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1315f5b92ffSmrgthis: 1325f5b92ffSmrg 1335f5b92ffSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1345f5b92ffSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1355f5b92ffSmrg CPP="gcc -E" CXXCPP="g++ -E" 1365f5b92ffSmrg 1375f5b92ffSmrg This is not guaranteed to produce working output in all cases, you 1385f5b92ffSmrgmay have to build one architecture at a time and combine the results 1395f5b92ffSmrgusing the `lipo' tool if you have problems. 1405f5b92ffSmrg 1415f5b92ffSmrgInstallation Names 1425f5b92ffSmrg================== 1435f5b92ffSmrg 1445f5b92ffSmrg By default, `make install' installs the package's commands under 1455f5b92ffSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1465f5b92ffSmrgcan specify an installation prefix other than `/usr/local' by giving 14736e956c5Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14836e956c5Smrgabsolute file name. 1495f5b92ffSmrg 1505f5b92ffSmrg You can specify separate installation prefixes for 1515f5b92ffSmrgarchitecture-specific files and architecture-independent files. If you 1525f5b92ffSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1535f5b92ffSmrgPREFIX as the prefix for installing programs and libraries. 1545f5b92ffSmrgDocumentation and other data files still use the regular prefix. 1555f5b92ffSmrg 1565f5b92ffSmrg In addition, if you use an unusual directory layout you can give 1575f5b92ffSmrgoptions like `--bindir=DIR' to specify different values for particular 1585f5b92ffSmrgkinds of files. Run `configure --help' for a list of the directories 15936e956c5Smrgyou can set and what kinds of files go in them. In general, the 16036e956c5Smrgdefault for these options is expressed in terms of `${prefix}', so that 16136e956c5Smrgspecifying just `--prefix' will affect all of the other directory 16236e956c5Smrgspecifications that were not explicitly provided. 16336e956c5Smrg 16436e956c5Smrg The most portable way to affect installation locations is to pass the 16536e956c5Smrgcorrect locations to `configure'; however, many packages provide one or 16636e956c5Smrgboth of the following shortcuts of passing variable assignments to the 16736e956c5Smrg`make install' command line to change installation locations without 16836e956c5Smrghaving to reconfigure or recompile. 16936e956c5Smrg 17036e956c5Smrg The first method involves providing an override variable for each 17136e956c5Smrgaffected directory. For example, `make install 17236e956c5Smrgprefix=/alternate/directory' will choose an alternate location for all 17336e956c5Smrgdirectory configuration variables that were expressed in terms of 17436e956c5Smrg`${prefix}'. Any directories that were specified during `configure', 17536e956c5Smrgbut not in terms of `${prefix}', must each be overridden at install 17636e956c5Smrgtime for the entire installation to be relocated. The approach of 17736e956c5Smrgmakefile variable overrides for each directory variable is required by 17836e956c5Smrgthe GNU Coding Standards, and ideally causes no recompilation. 17936e956c5SmrgHowever, some platforms have known limitations with the semantics of 18036e956c5Smrgshared libraries that end up requiring recompilation when using this 18136e956c5Smrgmethod, particularly noticeable in packages that use GNU Libtool. 18236e956c5Smrg 18336e956c5Smrg The second method involves providing the `DESTDIR' variable. For 18436e956c5Smrgexample, `make install DESTDIR=/alternate/directory' will prepend 18536e956c5Smrg`/alternate/directory' before all installation names. The approach of 18636e956c5Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18736e956c5Smrgdoes not work on platforms that have drive letters. On the other hand, 18836e956c5Smrgit does better at avoiding recompilation issues, and works well even 18936e956c5Smrgwhen some directory options were not specified in terms of `${prefix}' 19036e956c5Smrgat `configure' time. 19136e956c5Smrg 19236e956c5SmrgOptional Features 19336e956c5Smrg================= 1945f5b92ffSmrg 1955f5b92ffSmrg If the package supports it, you can cause programs to be installed 1965f5b92ffSmrgwith an extra prefix or suffix on their names by giving `configure' the 1975f5b92ffSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1985f5b92ffSmrg 1995f5b92ffSmrg Some packages pay attention to `--enable-FEATURE' options to 2005f5b92ffSmrg`configure', where FEATURE indicates an optional part of the package. 2015f5b92ffSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 2025f5b92ffSmrgis something like `gnu-as' or `x' (for the X Window System). The 2035f5b92ffSmrg`README' should mention any `--enable-' and `--with-' options that the 2045f5b92ffSmrgpackage recognizes. 2055f5b92ffSmrg 2065f5b92ffSmrg For packages that use the X Window System, `configure' can usually 2075f5b92ffSmrgfind the X include and library files automatically, but if it doesn't, 2085f5b92ffSmrgyou can use the `configure' options `--x-includes=DIR' and 2095f5b92ffSmrg`--x-libraries=DIR' to specify their locations. 2105f5b92ffSmrg 21136e956c5Smrg Some packages offer the ability to configure how verbose the 21236e956c5Smrgexecution of `make' will be. For these packages, running `./configure 21336e956c5Smrg--enable-silent-rules' sets the default to minimal output, which can be 21436e956c5Smrgoverridden with `make V=1'; while running `./configure 21536e956c5Smrg--disable-silent-rules' sets the default to verbose, which can be 21636e956c5Smrgoverridden with `make V=0'. 21736e956c5Smrg 2185f5b92ffSmrgParticular systems 2195f5b92ffSmrg================== 2205f5b92ffSmrg 2215f5b92ffSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 2225f5b92ffSmrgCC is not installed, it is recommended to use the following options in 2235f5b92ffSmrgorder to use an ANSI C compiler: 2245f5b92ffSmrg 22536e956c5Smrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 2265f5b92ffSmrg 2275f5b92ffSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 2285f5b92ffSmrg 22936e956c5Smrg HP-UX `make' updates targets which have the same time stamps as 23036e956c5Smrgtheir prerequisites, which makes it generally unusable when shipped 23136e956c5Smrggenerated files such as `configure' are involved. Use GNU `make' 23236e956c5Smrginstead. 23336e956c5Smrg 2345f5b92ffSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 2355f5b92ffSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 2365f5b92ffSmrga workaround. If GNU CC is not installed, it is therefore recommended 2375f5b92ffSmrgto try 2385f5b92ffSmrg 2395f5b92ffSmrg ./configure CC="cc" 2405f5b92ffSmrg 2415f5b92ffSmrgand if that doesn't work, try 2425f5b92ffSmrg 2435f5b92ffSmrg ./configure CC="cc -nodtk" 2445f5b92ffSmrg 24536e956c5Smrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24636e956c5Smrgdirectory contains several dysfunctional programs; working variants of 24736e956c5Smrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24836e956c5Smrgin your `PATH', put it _after_ `/usr/bin'. 24936e956c5Smrg 25036e956c5Smrg On Haiku, software installed for all users goes in `/boot/common', 25136e956c5Smrgnot `/usr/local'. It is recommended to use the following options: 25236e956c5Smrg 25336e956c5Smrg ./configure --prefix=/boot/common 25436e956c5Smrg 2555f5b92ffSmrgSpecifying the System Type 2565f5b92ffSmrg========================== 2575f5b92ffSmrg 2585f5b92ffSmrg There may be some features `configure' cannot figure out 2595f5b92ffSmrgautomatically, but needs to determine by the type of machine the package 2605f5b92ffSmrgwill run on. Usually, assuming the package is built to be run on the 2615f5b92ffSmrg_same_ architectures, `configure' can figure that out, but if it prints 2625f5b92ffSmrga message saying it cannot guess the machine type, give it the 2635f5b92ffSmrg`--build=TYPE' option. TYPE can either be a short name for the system 2645f5b92ffSmrgtype, such as `sun4', or a canonical name which has the form: 2655f5b92ffSmrg 2665f5b92ffSmrg CPU-COMPANY-SYSTEM 2675f5b92ffSmrg 2685f5b92ffSmrgwhere SYSTEM can have one of these forms: 2695f5b92ffSmrg 27036e956c5Smrg OS 27136e956c5Smrg KERNEL-OS 2725f5b92ffSmrg 2735f5b92ffSmrg See the file `config.sub' for the possible values of each field. If 2745f5b92ffSmrg`config.sub' isn't included in this package, then this package doesn't 2755f5b92ffSmrgneed to know the machine type. 2765f5b92ffSmrg 2775f5b92ffSmrg If you are _building_ compiler tools for cross-compiling, you should 2785f5b92ffSmrguse the option `--target=TYPE' to select the type of system they will 2795f5b92ffSmrgproduce code for. 2805f5b92ffSmrg 2815f5b92ffSmrg If you want to _use_ a cross compiler, that generates code for a 2825f5b92ffSmrgplatform different from the build platform, you should specify the 2835f5b92ffSmrg"host" platform (i.e., that on which the generated programs will 2845f5b92ffSmrgeventually be run) with `--host=TYPE'. 2855f5b92ffSmrg 2865f5b92ffSmrgSharing Defaults 2875f5b92ffSmrg================ 2885f5b92ffSmrg 2895f5b92ffSmrg If you want to set default values for `configure' scripts to share, 2905f5b92ffSmrgyou can create a site shell script called `config.site' that gives 2915f5b92ffSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2925f5b92ffSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2935f5b92ffSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2945f5b92ffSmrg`CONFIG_SITE' environment variable to the location of the site script. 2955f5b92ffSmrgA warning: not all `configure' scripts look for a site script. 2965f5b92ffSmrg 2975f5b92ffSmrgDefining Variables 2985f5b92ffSmrg================== 2995f5b92ffSmrg 3005f5b92ffSmrg Variables not defined in a site shell script can be set in the 3015f5b92ffSmrgenvironment passed to `configure'. However, some packages may run 3025f5b92ffSmrgconfigure again during the build, and the customized values of these 3035f5b92ffSmrgvariables may be lost. In order to avoid this problem, you should set 3045f5b92ffSmrgthem in the `configure' command line, using `VAR=value'. For example: 3055f5b92ffSmrg 3065f5b92ffSmrg ./configure CC=/usr/local2/bin/gcc 3075f5b92ffSmrg 3085f5b92ffSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 3095f5b92ffSmrgoverridden in the site shell script). 3105f5b92ffSmrg 3115f5b92ffSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 3125f5b92ffSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 3135f5b92ffSmrg 3145f5b92ffSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 3155f5b92ffSmrg 3165f5b92ffSmrg`configure' Invocation 3175f5b92ffSmrg====================== 3185f5b92ffSmrg 3195f5b92ffSmrg `configure' recognizes the following options to control how it 3205f5b92ffSmrgoperates. 3215f5b92ffSmrg 3225f5b92ffSmrg`--help' 3235f5b92ffSmrg`-h' 3245f5b92ffSmrg Print a summary of all of the options to `configure', and exit. 3255f5b92ffSmrg 3265f5b92ffSmrg`--help=short' 3275f5b92ffSmrg`--help=recursive' 3285f5b92ffSmrg Print a summary of the options unique to this package's 3295f5b92ffSmrg `configure', and exit. The `short' variant lists options used 3305f5b92ffSmrg only in the top level, while the `recursive' variant lists options 3315f5b92ffSmrg also present in any nested packages. 3325f5b92ffSmrg 3335f5b92ffSmrg`--version' 3345f5b92ffSmrg`-V' 3355f5b92ffSmrg Print the version of Autoconf used to generate the `configure' 3365f5b92ffSmrg script, and exit. 3375f5b92ffSmrg 3385f5b92ffSmrg`--cache-file=FILE' 3395f5b92ffSmrg Enable the cache: use and save the results of the tests in FILE, 3405f5b92ffSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 3415f5b92ffSmrg disable caching. 3425f5b92ffSmrg 3435f5b92ffSmrg`--config-cache' 3445f5b92ffSmrg`-C' 3455f5b92ffSmrg Alias for `--cache-file=config.cache'. 3465f5b92ffSmrg 3475f5b92ffSmrg`--quiet' 3485f5b92ffSmrg`--silent' 3495f5b92ffSmrg`-q' 3505f5b92ffSmrg Do not print messages saying which checks are being made. To 3515f5b92ffSmrg suppress all normal output, redirect it to `/dev/null' (any error 3525f5b92ffSmrg messages will still be shown). 3535f5b92ffSmrg 3545f5b92ffSmrg`--srcdir=DIR' 3555f5b92ffSmrg Look for the package's source code in directory DIR. Usually 3565f5b92ffSmrg `configure' can determine that directory automatically. 3575f5b92ffSmrg 3585f5b92ffSmrg`--prefix=DIR' 35936e956c5Smrg Use DIR as the installation prefix. *note Installation Names:: 3605f5b92ffSmrg for more details, including other options available for fine-tuning 3615f5b92ffSmrg the installation locations. 3625f5b92ffSmrg 3635f5b92ffSmrg`--no-create' 3645f5b92ffSmrg`-n' 3655f5b92ffSmrg Run the configure checks, but stop before creating any output 3665f5b92ffSmrg files. 3675f5b92ffSmrg 3685f5b92ffSmrg`configure' also accepts some other, not widely useful, options. Run 3695f5b92ffSmrg`configure --help' for more details. 3705f5b92ffSmrg 371