INSTALL revision 00084f2c
127702724SmrgInstallation Instructions 227702724Smrg************************* 327702724Smrg 400084f2cSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 500084f2cSmrg2006, 2007, 2008 Free Software Foundation, Inc. 627702724Smrg 700084f2cSmrg This file is free documentation; the Free Software Foundation gives 827702724Smrgunlimited permission to copy, distribute and modify it. 927702724Smrg 1027702724SmrgBasic Installation 1127702724Smrg================== 1227702724Smrg 1300084f2cSmrg Briefly, the shell commands `./configure; make; make install' should 1400084f2cSmrgconfigure, build, and install this package. The following 1500084f2cSmrgmore-detailed instructions are generic; see the `README' file for 1600084f2cSmrginstructions specific to this package. 1727702724Smrg 1827702724Smrg The `configure' shell script attempts to guess correct values for 1927702724Smrgvarious system-dependent variables used during compilation. It uses 2027702724Smrgthose values to create a `Makefile' in each directory of the package. 2127702724SmrgIt may also create one or more `.h' files containing system-dependent 2227702724Smrgdefinitions. Finally, it creates a shell script `config.status' that 2327702724Smrgyou can run in the future to recreate the current configuration, and a 2427702724Smrgfile `config.log' containing compiler output (useful mainly for 2527702724Smrgdebugging `configure'). 2627702724Smrg 2727702724Smrg It can also use an optional file (typically called `config.cache' 2827702724Smrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2900084f2cSmrgthe results of its tests to speed up reconfiguring. Caching is 3027702724Smrgdisabled by default to prevent problems with accidental use of stale 3100084f2cSmrgcache files. 3227702724Smrg 3327702724Smrg If you need to do unusual things to compile the package, please try 3427702724Smrgto figure out how `configure' could check whether to do them, and mail 3527702724Smrgdiffs or instructions to the address given in the `README' so they can 3627702724Smrgbe considered for the next release. If you are using the cache, and at 3727702724Smrgsome point `config.cache' contains results you don't want to keep, you 3827702724Smrgmay remove or edit it. 3927702724Smrg 4027702724Smrg The file `configure.ac' (or `configure.in') is used to create 4100084f2cSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4200084f2cSmrgyou want to change it or regenerate `configure' using a newer version 4300084f2cSmrgof `autoconf'. 4427702724Smrg 4527702724SmrgThe simplest way to compile this package is: 4627702724Smrg 4727702724Smrg 1. `cd' to the directory containing the package's source code and type 4800084f2cSmrg `./configure' to configure the package for your system. 4927702724Smrg 5000084f2cSmrg Running `configure' might take a while. While running, it prints 5100084f2cSmrg some messages telling which features it is checking for. 5227702724Smrg 5327702724Smrg 2. Type `make' to compile the package. 5427702724Smrg 5527702724Smrg 3. Optionally, type `make check' to run any self-tests that come with 5627702724Smrg the package. 5727702724Smrg 5827702724Smrg 4. Type `make install' to install the programs and any data files and 5927702724Smrg documentation. 6027702724Smrg 6127702724Smrg 5. You can remove the program binaries and object files from the 6227702724Smrg source code directory by typing `make clean'. To also remove the 6327702724Smrg files that `configure' created (so you can compile the package for 6427702724Smrg a different kind of computer), type `make distclean'. There is 6527702724Smrg also a `make maintainer-clean' target, but that is intended mainly 6627702724Smrg for the package's developers. If you use it, you may have to get 6727702724Smrg all sorts of other programs in order to regenerate files that came 6827702724Smrg with the distribution. 6927702724Smrg 7000084f2cSmrg 6. Often, you can also type `make uninstall' to remove the installed 7100084f2cSmrg files again. 7200084f2cSmrg 7327702724SmrgCompilers and Options 7427702724Smrg===================== 7527702724Smrg 7600084f2cSmrg Some systems require unusual options for compilation or linking that 7700084f2cSmrgthe `configure' script does not know about. Run `./configure --help' 7800084f2cSmrgfor details on some of the pertinent environment variables. 7927702724Smrg 8027702724Smrg You can give `configure' initial values for configuration parameters 8127702724Smrgby setting variables in the command line or in the environment. Here 8227702724Smrgis an example: 8327702724Smrg 8400084f2cSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8527702724Smrg 8627702724Smrg *Note Defining Variables::, for more details. 8727702724Smrg 8827702724SmrgCompiling For Multiple Architectures 8927702724Smrg==================================== 9027702724Smrg 9100084f2cSmrg You can compile the package for more than one kind of computer at the 9227702724Smrgsame time, by placing the object files for each architecture in their 9300084f2cSmrgown directory. To do this, you can use GNU `make'. `cd' to the 9427702724Smrgdirectory where you want the object files and executables to go and run 9527702724Smrgthe `configure' script. `configure' automatically checks for the 9627702724Smrgsource code in the directory that `configure' is in and in `..'. 9727702724Smrg 9800084f2cSmrg With a non-GNU `make', it is safer to compile the package for one 9900084f2cSmrgarchitecture at a time in the source code directory. After you have 10000084f2cSmrginstalled the package for one architecture, use `make distclean' before 10100084f2cSmrgreconfiguring for another architecture. 10200084f2cSmrg 10300084f2cSmrg On MacOS X 10.5 and later systems, you can create libraries and 10400084f2cSmrgexecutables that work on multiple system types--known as "fat" or 10500084f2cSmrg"universal" binaries--by specifying multiple `-arch' options to the 10600084f2cSmrgcompiler but only a single `-arch' option to the preprocessor. Like 10700084f2cSmrgthis: 10800084f2cSmrg 10900084f2cSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11000084f2cSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11100084f2cSmrg CPP="gcc -E" CXXCPP="g++ -E" 11200084f2cSmrg 11300084f2cSmrg This is not guaranteed to produce working output in all cases, you 11400084f2cSmrgmay have to build one architecture at a time and combine the results 11500084f2cSmrgusing the `lipo' tool if you have problems. 11627702724Smrg 11727702724SmrgInstallation Names 11827702724Smrg================== 11927702724Smrg 12000084f2cSmrg By default, `make install' installs the package's commands under 12100084f2cSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12200084f2cSmrgcan specify an installation prefix other than `/usr/local' by giving 12300084f2cSmrg`configure' the option `--prefix=PREFIX'. 12427702724Smrg 12527702724Smrg You can specify separate installation prefixes for 12627702724Smrgarchitecture-specific files and architecture-independent files. If you 12700084f2cSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12800084f2cSmrgPREFIX as the prefix for installing programs and libraries. 12900084f2cSmrgDocumentation and other data files still use the regular prefix. 13027702724Smrg 13127702724Smrg In addition, if you use an unusual directory layout you can give 13227702724Smrgoptions like `--bindir=DIR' to specify different values for particular 13327702724Smrgkinds of files. Run `configure --help' for a list of the directories 13427702724Smrgyou can set and what kinds of files go in them. 13527702724Smrg 13627702724Smrg If the package supports it, you can cause programs to be installed 13727702724Smrgwith an extra prefix or suffix on their names by giving `configure' the 13827702724Smrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13927702724Smrg 14027702724SmrgOptional Features 14127702724Smrg================= 14227702724Smrg 14300084f2cSmrg Some packages pay attention to `--enable-FEATURE' options to 14427702724Smrg`configure', where FEATURE indicates an optional part of the package. 14527702724SmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14627702724Smrgis something like `gnu-as' or `x' (for the X Window System). The 14727702724Smrg`README' should mention any `--enable-' and `--with-' options that the 14827702724Smrgpackage recognizes. 14927702724Smrg 15027702724Smrg For packages that use the X Window System, `configure' can usually 15127702724Smrgfind the X include and library files automatically, but if it doesn't, 15227702724Smrgyou can use the `configure' options `--x-includes=DIR' and 15327702724Smrg`--x-libraries=DIR' to specify their locations. 15427702724Smrg 15500084f2cSmrgParticular systems 15600084f2cSmrg================== 15700084f2cSmrg 15800084f2cSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15900084f2cSmrgCC is not installed, it is recommended to use the following options in 16000084f2cSmrgorder to use an ANSI C compiler: 16100084f2cSmrg 16200084f2cSmrg ./configure CC="cc -Ae" 16300084f2cSmrg 16400084f2cSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16500084f2cSmrg 16600084f2cSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16700084f2cSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16800084f2cSmrga workaround. If GNU CC is not installed, it is therefore recommended 16900084f2cSmrgto try 17000084f2cSmrg 17100084f2cSmrg ./configure CC="cc" 17200084f2cSmrg 17300084f2cSmrgand if that doesn't work, try 17400084f2cSmrg 17500084f2cSmrg ./configure CC="cc -nodtk" 17600084f2cSmrg 17727702724SmrgSpecifying the System Type 17827702724Smrg========================== 17927702724Smrg 18000084f2cSmrg There may be some features `configure' cannot figure out 18100084f2cSmrgautomatically, but needs to determine by the type of machine the package 18200084f2cSmrgwill run on. Usually, assuming the package is built to be run on the 18300084f2cSmrg_same_ architectures, `configure' can figure that out, but if it prints 18400084f2cSmrga message saying it cannot guess the machine type, give it the 18527702724Smrg`--build=TYPE' option. TYPE can either be a short name for the system 18627702724Smrgtype, such as `sun4', or a canonical name which has the form: 18727702724Smrg 18827702724Smrg CPU-COMPANY-SYSTEM 18927702724Smrg 19027702724Smrgwhere SYSTEM can have one of these forms: 19127702724Smrg 19227702724Smrg OS KERNEL-OS 19327702724Smrg 19427702724Smrg See the file `config.sub' for the possible values of each field. If 19527702724Smrg`config.sub' isn't included in this package, then this package doesn't 19627702724Smrgneed to know the machine type. 19727702724Smrg 19827702724Smrg If you are _building_ compiler tools for cross-compiling, you should 19900084f2cSmrguse the option `--target=TYPE' to select the type of system they will 20027702724Smrgproduce code for. 20127702724Smrg 20227702724Smrg If you want to _use_ a cross compiler, that generates code for a 20327702724Smrgplatform different from the build platform, you should specify the 20427702724Smrg"host" platform (i.e., that on which the generated programs will 20527702724Smrgeventually be run) with `--host=TYPE'. 20627702724Smrg 20727702724SmrgSharing Defaults 20827702724Smrg================ 20927702724Smrg 21000084f2cSmrg If you want to set default values for `configure' scripts to share, 21100084f2cSmrgyou can create a site shell script called `config.site' that gives 21200084f2cSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 21327702724Smrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21427702724Smrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21527702724Smrg`CONFIG_SITE' environment variable to the location of the site script. 21627702724SmrgA warning: not all `configure' scripts look for a site script. 21727702724Smrg 21827702724SmrgDefining Variables 21927702724Smrg================== 22027702724Smrg 22100084f2cSmrg Variables not defined in a site shell script can be set in the 22227702724Smrgenvironment passed to `configure'. However, some packages may run 22327702724Smrgconfigure again during the build, and the customized values of these 22427702724Smrgvariables may be lost. In order to avoid this problem, you should set 22527702724Smrgthem in the `configure' command line, using `VAR=value'. For example: 22627702724Smrg 22727702724Smrg ./configure CC=/usr/local2/bin/gcc 22827702724Smrg 22927702724Smrgcauses the specified `gcc' to be used as the C compiler (unless it is 23000084f2cSmrgoverridden in the site shell script). 23127702724Smrg 23200084f2cSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23300084f2cSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23427702724Smrg 23500084f2cSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23627702724Smrg 23727702724Smrg`configure' Invocation 23827702724Smrg====================== 23927702724Smrg 24000084f2cSmrg `configure' recognizes the following options to control how it 24100084f2cSmrgoperates. 24227702724Smrg 24327702724Smrg`--help' 24427702724Smrg`-h' 24500084f2cSmrg Print a summary of all of the options to `configure', and exit. 24600084f2cSmrg 24700084f2cSmrg`--help=short' 24800084f2cSmrg`--help=recursive' 24900084f2cSmrg Print a summary of the options unique to this package's 25000084f2cSmrg `configure', and exit. The `short' variant lists options used 25100084f2cSmrg only in the top level, while the `recursive' variant lists options 25200084f2cSmrg also present in any nested packages. 25327702724Smrg 25427702724Smrg`--version' 25527702724Smrg`-V' 25627702724Smrg Print the version of Autoconf used to generate the `configure' 25727702724Smrg script, and exit. 25827702724Smrg 25927702724Smrg`--cache-file=FILE' 26027702724Smrg Enable the cache: use and save the results of the tests in FILE, 26127702724Smrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26227702724Smrg disable caching. 26327702724Smrg 26427702724Smrg`--config-cache' 26527702724Smrg`-C' 26627702724Smrg Alias for `--cache-file=config.cache'. 26727702724Smrg 26827702724Smrg`--quiet' 26927702724Smrg`--silent' 27027702724Smrg`-q' 27127702724Smrg Do not print messages saying which checks are being made. To 27227702724Smrg suppress all normal output, redirect it to `/dev/null' (any error 27327702724Smrg messages will still be shown). 27427702724Smrg 27527702724Smrg`--srcdir=DIR' 27627702724Smrg Look for the package's source code in directory DIR. Usually 27727702724Smrg `configure' can determine that directory automatically. 27827702724Smrg 27900084f2cSmrg`--prefix=DIR' 28000084f2cSmrg Use DIR as the installation prefix. *Note Installation Names:: 28100084f2cSmrg for more details, including other options available for fine-tuning 28200084f2cSmrg the installation locations. 28300084f2cSmrg 28400084f2cSmrg`--no-create' 28500084f2cSmrg`-n' 28600084f2cSmrg Run the configure checks, but stop before creating any output 28700084f2cSmrg files. 28800084f2cSmrg 28927702724Smrg`configure' also accepts some other, not widely useful, options. Run 29027702724Smrg`configure --help' for more details. 29127702724Smrg 292