13f6d0e1dSmrgInstallation Instructions 23f6d0e1dSmrg************************* 33f6d0e1dSmrg 495903e71SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 595903e71SmrgInc. 63f6d0e1dSmrg 795903e71Smrg Copying and distribution of this file, with or without modification, 895903e71Smrgare permitted in any medium without royalty provided the copyright 995903e71Smrgnotice and this notice are preserved. This file is offered as-is, 1095903e71Smrgwithout warranty of any kind. 113f6d0e1dSmrg 123f6d0e1dSmrgBasic Installation 133f6d0e1dSmrg================== 143f6d0e1dSmrg 153f6d0e1dSmrg Briefly, the shell commands `./configure; make; make install' should 163f6d0e1dSmrgconfigure, build, and install this package. The following 173f6d0e1dSmrgmore-detailed instructions are generic; see the `README' file for 1895903e71Smrginstructions specific to this package. Some packages provide this 1995903e71Smrg`INSTALL' file but do not implement all of the features documented 2095903e71Smrgbelow. The lack of an optional feature in a given package is not 2195903e71Smrgnecessarily a bug. More recommendations for GNU packages can be found 2295903e71Smrgin *note Makefile Conventions: (standards)Makefile Conventions. 233f6d0e1dSmrg 243f6d0e1dSmrg The `configure' shell script attempts to guess correct values for 253f6d0e1dSmrgvarious system-dependent variables used during compilation. It uses 263f6d0e1dSmrgthose values to create a `Makefile' in each directory of the package. 273f6d0e1dSmrgIt may also create one or more `.h' files containing system-dependent 283f6d0e1dSmrgdefinitions. Finally, it creates a shell script `config.status' that 293f6d0e1dSmrgyou can run in the future to recreate the current configuration, and a 303f6d0e1dSmrgfile `config.log' containing compiler output (useful mainly for 313f6d0e1dSmrgdebugging `configure'). 323f6d0e1dSmrg 333f6d0e1dSmrg It can also use an optional file (typically called `config.cache' 343f6d0e1dSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 353f6d0e1dSmrgthe results of its tests to speed up reconfiguring. Caching is 363f6d0e1dSmrgdisabled by default to prevent problems with accidental use of stale 373f6d0e1dSmrgcache files. 383f6d0e1dSmrg 393f6d0e1dSmrg If you need to do unusual things to compile the package, please try 403f6d0e1dSmrgto figure out how `configure' could check whether to do them, and mail 413f6d0e1dSmrgdiffs or instructions to the address given in the `README' so they can 423f6d0e1dSmrgbe considered for the next release. If you are using the cache, and at 433f6d0e1dSmrgsome point `config.cache' contains results you don't want to keep, you 443f6d0e1dSmrgmay remove or edit it. 453f6d0e1dSmrg 463f6d0e1dSmrg The file `configure.ac' (or `configure.in') is used to create 473f6d0e1dSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 483f6d0e1dSmrgyou want to change it or regenerate `configure' using a newer version 493f6d0e1dSmrgof `autoconf'. 503f6d0e1dSmrg 5195903e71Smrg The simplest way to compile this package is: 523f6d0e1dSmrg 533f6d0e1dSmrg 1. `cd' to the directory containing the package's source code and type 543f6d0e1dSmrg `./configure' to configure the package for your system. 553f6d0e1dSmrg 563f6d0e1dSmrg Running `configure' might take a while. While running, it prints 573f6d0e1dSmrg some messages telling which features it is checking for. 583f6d0e1dSmrg 593f6d0e1dSmrg 2. Type `make' to compile the package. 603f6d0e1dSmrg 613f6d0e1dSmrg 3. Optionally, type `make check' to run any self-tests that come with 6295903e71Smrg the package, generally using the just-built uninstalled binaries. 633f6d0e1dSmrg 643f6d0e1dSmrg 4. Type `make install' to install the programs and any data files and 6595903e71Smrg documentation. When installing into a prefix owned by root, it is 6695903e71Smrg recommended that the package be configured and built as a regular 6795903e71Smrg user, and only the `make install' phase executed with root 6895903e71Smrg privileges. 6995903e71Smrg 7095903e71Smrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 7195903e71Smrg this time using the binaries in their final installed location. 7295903e71Smrg This target does not install anything. Running this target as a 7395903e71Smrg regular user, particularly if the prior `make install' required 7495903e71Smrg root privileges, verifies that the installation completed 7595903e71Smrg correctly. 7695903e71Smrg 7795903e71Smrg 6. You can remove the program binaries and object files from the 783f6d0e1dSmrg source code directory by typing `make clean'. To also remove the 793f6d0e1dSmrg files that `configure' created (so you can compile the package for 803f6d0e1dSmrg a different kind of computer), type `make distclean'. There is 813f6d0e1dSmrg also a `make maintainer-clean' target, but that is intended mainly 823f6d0e1dSmrg for the package's developers. If you use it, you may have to get 833f6d0e1dSmrg all sorts of other programs in order to regenerate files that came 843f6d0e1dSmrg with the distribution. 853f6d0e1dSmrg 8695903e71Smrg 7. Often, you can also type `make uninstall' to remove the installed 8795903e71Smrg files again. In practice, not all packages have tested that 8895903e71Smrg uninstallation works correctly, even though it is required by the 8995903e71Smrg GNU Coding Standards. 9095903e71Smrg 9195903e71Smrg 8. Some packages, particularly those that use Automake, provide `make 9295903e71Smrg distcheck', which can by used by developers to test that all other 9395903e71Smrg targets like `make install' and `make uninstall' work correctly. 9495903e71Smrg This target is generally not run by end users. 953f6d0e1dSmrg 963f6d0e1dSmrgCompilers and Options 973f6d0e1dSmrg===================== 983f6d0e1dSmrg 993f6d0e1dSmrg Some systems require unusual options for compilation or linking that 1003f6d0e1dSmrgthe `configure' script does not know about. Run `./configure --help' 1013f6d0e1dSmrgfor details on some of the pertinent environment variables. 1023f6d0e1dSmrg 1033f6d0e1dSmrg You can give `configure' initial values for configuration parameters 1043f6d0e1dSmrgby setting variables in the command line or in the environment. Here 1053f6d0e1dSmrgis an example: 1063f6d0e1dSmrg 1073f6d0e1dSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 1083f6d0e1dSmrg 1093f6d0e1dSmrg *Note Defining Variables::, for more details. 1103f6d0e1dSmrg 1113f6d0e1dSmrgCompiling For Multiple Architectures 1123f6d0e1dSmrg==================================== 1133f6d0e1dSmrg 1143f6d0e1dSmrg You can compile the package for more than one kind of computer at the 1153f6d0e1dSmrgsame time, by placing the object files for each architecture in their 1163f6d0e1dSmrgown directory. To do this, you can use GNU `make'. `cd' to the 1173f6d0e1dSmrgdirectory where you want the object files and executables to go and run 1183f6d0e1dSmrgthe `configure' script. `configure' automatically checks for the 11995903e71Smrgsource code in the directory that `configure' is in and in `..'. This 12095903e71Smrgis known as a "VPATH" build. 1213f6d0e1dSmrg 1223f6d0e1dSmrg With a non-GNU `make', it is safer to compile the package for one 1233f6d0e1dSmrgarchitecture at a time in the source code directory. After you have 1243f6d0e1dSmrginstalled the package for one architecture, use `make distclean' before 1253f6d0e1dSmrgreconfiguring for another architecture. 1263f6d0e1dSmrg 1273f6d0e1dSmrg On MacOS X 10.5 and later systems, you can create libraries and 1283f6d0e1dSmrgexecutables that work on multiple system types--known as "fat" or 1293f6d0e1dSmrg"universal" binaries--by specifying multiple `-arch' options to the 1303f6d0e1dSmrgcompiler but only a single `-arch' option to the preprocessor. Like 1313f6d0e1dSmrgthis: 1323f6d0e1dSmrg 1333f6d0e1dSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1343f6d0e1dSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 1353f6d0e1dSmrg CPP="gcc -E" CXXCPP="g++ -E" 1363f6d0e1dSmrg 1373f6d0e1dSmrg This is not guaranteed to produce working output in all cases, you 1383f6d0e1dSmrgmay have to build one architecture at a time and combine the results 1393f6d0e1dSmrgusing the `lipo' tool if you have problems. 1403f6d0e1dSmrg 1413f6d0e1dSmrgInstallation Names 1423f6d0e1dSmrg================== 1433f6d0e1dSmrg 1443f6d0e1dSmrg By default, `make install' installs the package's commands under 1453f6d0e1dSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 1463f6d0e1dSmrgcan specify an installation prefix other than `/usr/local' by giving 14795903e71Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 14895903e71Smrgabsolute file name. 1493f6d0e1dSmrg 1503f6d0e1dSmrg You can specify separate installation prefixes for 1513f6d0e1dSmrgarchitecture-specific files and architecture-independent files. If you 1523f6d0e1dSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 1533f6d0e1dSmrgPREFIX as the prefix for installing programs and libraries. 1543f6d0e1dSmrgDocumentation and other data files still use the regular prefix. 1553f6d0e1dSmrg 1563f6d0e1dSmrg In addition, if you use an unusual directory layout you can give 1573f6d0e1dSmrgoptions like `--bindir=DIR' to specify different values for particular 1583f6d0e1dSmrgkinds of files. Run `configure --help' for a list of the directories 15995903e71Smrgyou can set and what kinds of files go in them. In general, the 16095903e71Smrgdefault for these options is expressed in terms of `${prefix}', so that 16195903e71Smrgspecifying just `--prefix' will affect all of the other directory 16295903e71Smrgspecifications that were not explicitly provided. 16395903e71Smrg 16495903e71Smrg The most portable way to affect installation locations is to pass the 16595903e71Smrgcorrect locations to `configure'; however, many packages provide one or 16695903e71Smrgboth of the following shortcuts of passing variable assignments to the 16795903e71Smrg`make install' command line to change installation locations without 16895903e71Smrghaving to reconfigure or recompile. 16995903e71Smrg 17095903e71Smrg The first method involves providing an override variable for each 17195903e71Smrgaffected directory. For example, `make install 17295903e71Smrgprefix=/alternate/directory' will choose an alternate location for all 17395903e71Smrgdirectory configuration variables that were expressed in terms of 17495903e71Smrg`${prefix}'. Any directories that were specified during `configure', 17595903e71Smrgbut not in terms of `${prefix}', must each be overridden at install 17695903e71Smrgtime for the entire installation to be relocated. The approach of 17795903e71Smrgmakefile variable overrides for each directory variable is required by 17895903e71Smrgthe GNU Coding Standards, and ideally causes no recompilation. 17995903e71SmrgHowever, some platforms have known limitations with the semantics of 18095903e71Smrgshared libraries that end up requiring recompilation when using this 18195903e71Smrgmethod, particularly noticeable in packages that use GNU Libtool. 18295903e71Smrg 18395903e71Smrg The second method involves providing the `DESTDIR' variable. For 18495903e71Smrgexample, `make install DESTDIR=/alternate/directory' will prepend 18595903e71Smrg`/alternate/directory' before all installation names. The approach of 18695903e71Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 18795903e71Smrgdoes not work on platforms that have drive letters. On the other hand, 18895903e71Smrgit does better at avoiding recompilation issues, and works well even 18995903e71Smrgwhen some directory options were not specified in terms of `${prefix}' 19095903e71Smrgat `configure' time. 19195903e71Smrg 19295903e71SmrgOptional Features 19395903e71Smrg================= 1943f6d0e1dSmrg 1953f6d0e1dSmrg If the package supports it, you can cause programs to be installed 1963f6d0e1dSmrgwith an extra prefix or suffix on their names by giving `configure' the 1973f6d0e1dSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 1983f6d0e1dSmrg 1993f6d0e1dSmrg Some packages pay attention to `--enable-FEATURE' options to 2003f6d0e1dSmrg`configure', where FEATURE indicates an optional part of the package. 2013f6d0e1dSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 2023f6d0e1dSmrgis something like `gnu-as' or `x' (for the X Window System). The 2033f6d0e1dSmrg`README' should mention any `--enable-' and `--with-' options that the 2043f6d0e1dSmrgpackage recognizes. 2053f6d0e1dSmrg 2063f6d0e1dSmrg For packages that use the X Window System, `configure' can usually 2073f6d0e1dSmrgfind the X include and library files automatically, but if it doesn't, 2083f6d0e1dSmrgyou can use the `configure' options `--x-includes=DIR' and 2093f6d0e1dSmrg`--x-libraries=DIR' to specify their locations. 2103f6d0e1dSmrg 21195903e71Smrg Some packages offer the ability to configure how verbose the 21295903e71Smrgexecution of `make' will be. For these packages, running `./configure 21395903e71Smrg--enable-silent-rules' sets the default to minimal output, which can be 21495903e71Smrgoverridden with `make V=1'; while running `./configure 21595903e71Smrg--disable-silent-rules' sets the default to verbose, which can be 21695903e71Smrgoverridden with `make V=0'. 21795903e71Smrg 2183f6d0e1dSmrgParticular systems 2193f6d0e1dSmrg================== 2203f6d0e1dSmrg 2213f6d0e1dSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 2223f6d0e1dSmrgCC is not installed, it is recommended to use the following options in 2233f6d0e1dSmrgorder to use an ANSI C compiler: 2243f6d0e1dSmrg 22595903e71Smrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 2263f6d0e1dSmrg 2273f6d0e1dSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 2283f6d0e1dSmrg 22995903e71Smrg HP-UX `make' updates targets which have the same time stamps as 23095903e71Smrgtheir prerequisites, which makes it generally unusable when shipped 23195903e71Smrggenerated files such as `configure' are involved. Use GNU `make' 23295903e71Smrginstead. 23395903e71Smrg 2343f6d0e1dSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 2353f6d0e1dSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 2363f6d0e1dSmrga workaround. If GNU CC is not installed, it is therefore recommended 2373f6d0e1dSmrgto try 2383f6d0e1dSmrg 2393f6d0e1dSmrg ./configure CC="cc" 2403f6d0e1dSmrg 2413f6d0e1dSmrgand if that doesn't work, try 2423f6d0e1dSmrg 2433f6d0e1dSmrg ./configure CC="cc -nodtk" 2443f6d0e1dSmrg 24595903e71Smrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 24695903e71Smrgdirectory contains several dysfunctional programs; working variants of 24795903e71Smrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 24895903e71Smrgin your `PATH', put it _after_ `/usr/bin'. 24995903e71Smrg 25095903e71Smrg On Haiku, software installed for all users goes in `/boot/common', 25195903e71Smrgnot `/usr/local'. It is recommended to use the following options: 25295903e71Smrg 25395903e71Smrg ./configure --prefix=/boot/common 25495903e71Smrg 2553f6d0e1dSmrgSpecifying the System Type 2563f6d0e1dSmrg========================== 2573f6d0e1dSmrg 2583f6d0e1dSmrg There may be some features `configure' cannot figure out 2593f6d0e1dSmrgautomatically, but needs to determine by the type of machine the package 2603f6d0e1dSmrgwill run on. Usually, assuming the package is built to be run on the 2613f6d0e1dSmrg_same_ architectures, `configure' can figure that out, but if it prints 2623f6d0e1dSmrga message saying it cannot guess the machine type, give it the 2633f6d0e1dSmrg`--build=TYPE' option. TYPE can either be a short name for the system 2643f6d0e1dSmrgtype, such as `sun4', or a canonical name which has the form: 2653f6d0e1dSmrg 2663f6d0e1dSmrg CPU-COMPANY-SYSTEM 2673f6d0e1dSmrg 2683f6d0e1dSmrgwhere SYSTEM can have one of these forms: 2693f6d0e1dSmrg 27095903e71Smrg OS 27195903e71Smrg KERNEL-OS 2723f6d0e1dSmrg 2733f6d0e1dSmrg See the file `config.sub' for the possible values of each field. If 2743f6d0e1dSmrg`config.sub' isn't included in this package, then this package doesn't 2753f6d0e1dSmrgneed to know the machine type. 2763f6d0e1dSmrg 2773f6d0e1dSmrg If you are _building_ compiler tools for cross-compiling, you should 2783f6d0e1dSmrguse the option `--target=TYPE' to select the type of system they will 2793f6d0e1dSmrgproduce code for. 2803f6d0e1dSmrg 2813f6d0e1dSmrg If you want to _use_ a cross compiler, that generates code for a 2823f6d0e1dSmrgplatform different from the build platform, you should specify the 2833f6d0e1dSmrg"host" platform (i.e., that on which the generated programs will 2843f6d0e1dSmrgeventually be run) with `--host=TYPE'. 2853f6d0e1dSmrg 2863f6d0e1dSmrgSharing Defaults 2873f6d0e1dSmrg================ 2883f6d0e1dSmrg 2893f6d0e1dSmrg If you want to set default values for `configure' scripts to share, 2903f6d0e1dSmrgyou can create a site shell script called `config.site' that gives 2913f6d0e1dSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 2923f6d0e1dSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 2933f6d0e1dSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 2943f6d0e1dSmrg`CONFIG_SITE' environment variable to the location of the site script. 2953f6d0e1dSmrgA warning: not all `configure' scripts look for a site script. 2963f6d0e1dSmrg 2973f6d0e1dSmrgDefining Variables 2983f6d0e1dSmrg================== 2993f6d0e1dSmrg 3003f6d0e1dSmrg Variables not defined in a site shell script can be set in the 3013f6d0e1dSmrgenvironment passed to `configure'. However, some packages may run 3023f6d0e1dSmrgconfigure again during the build, and the customized values of these 3033f6d0e1dSmrgvariables may be lost. In order to avoid this problem, you should set 3043f6d0e1dSmrgthem in the `configure' command line, using `VAR=value'. For example: 3053f6d0e1dSmrg 3063f6d0e1dSmrg ./configure CC=/usr/local2/bin/gcc 3073f6d0e1dSmrg 3083f6d0e1dSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 3093f6d0e1dSmrgoverridden in the site shell script). 3103f6d0e1dSmrg 3113f6d0e1dSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 3123f6d0e1dSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 3133f6d0e1dSmrg 3143f6d0e1dSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 3153f6d0e1dSmrg 3163f6d0e1dSmrg`configure' Invocation 3173f6d0e1dSmrg====================== 3183f6d0e1dSmrg 3193f6d0e1dSmrg `configure' recognizes the following options to control how it 3203f6d0e1dSmrgoperates. 3213f6d0e1dSmrg 3223f6d0e1dSmrg`--help' 3233f6d0e1dSmrg`-h' 3243f6d0e1dSmrg Print a summary of all of the options to `configure', and exit. 3253f6d0e1dSmrg 3263f6d0e1dSmrg`--help=short' 3273f6d0e1dSmrg`--help=recursive' 3283f6d0e1dSmrg Print a summary of the options unique to this package's 3293f6d0e1dSmrg `configure', and exit. The `short' variant lists options used 3303f6d0e1dSmrg only in the top level, while the `recursive' variant lists options 3313f6d0e1dSmrg also present in any nested packages. 3323f6d0e1dSmrg 3333f6d0e1dSmrg`--version' 3343f6d0e1dSmrg`-V' 3353f6d0e1dSmrg Print the version of Autoconf used to generate the `configure' 3363f6d0e1dSmrg script, and exit. 3373f6d0e1dSmrg 3383f6d0e1dSmrg`--cache-file=FILE' 3393f6d0e1dSmrg Enable the cache: use and save the results of the tests in FILE, 3403f6d0e1dSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 3413f6d0e1dSmrg disable caching. 3423f6d0e1dSmrg 3433f6d0e1dSmrg`--config-cache' 3443f6d0e1dSmrg`-C' 3453f6d0e1dSmrg Alias for `--cache-file=config.cache'. 3463f6d0e1dSmrg 3473f6d0e1dSmrg`--quiet' 3483f6d0e1dSmrg`--silent' 3493f6d0e1dSmrg`-q' 3503f6d0e1dSmrg Do not print messages saying which checks are being made. To 3513f6d0e1dSmrg suppress all normal output, redirect it to `/dev/null' (any error 3523f6d0e1dSmrg messages will still be shown). 3533f6d0e1dSmrg 3543f6d0e1dSmrg`--srcdir=DIR' 3553f6d0e1dSmrg Look for the package's source code in directory DIR. Usually 3563f6d0e1dSmrg `configure' can determine that directory automatically. 3573f6d0e1dSmrg 3583f6d0e1dSmrg`--prefix=DIR' 35995903e71Smrg Use DIR as the installation prefix. *note Installation Names:: 3603f6d0e1dSmrg for more details, including other options available for fine-tuning 3613f6d0e1dSmrg the installation locations. 3623f6d0e1dSmrg 3633f6d0e1dSmrg`--no-create' 3643f6d0e1dSmrg`-n' 3653f6d0e1dSmrg Run the configure checks, but stop before creating any output 3663f6d0e1dSmrg files. 3673f6d0e1dSmrg 3683f6d0e1dSmrg`configure' also accepts some other, not widely useful, options. Run 3693f6d0e1dSmrg`configure --help' for more details. 3703f6d0e1dSmrg 371