INSTALL revision 08e312fd
108e312fdSmrgInstallation Instructions 208e312fdSmrg************************* 308e312fdSmrg 408e312fdSmrgCopyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 508e312fdSmrg2006, 2007, 2008 Free Software Foundation, Inc. 608e312fdSmrg 708e312fdSmrg This file is free documentation; the Free Software Foundation gives 808e312fdSmrgunlimited permission to copy, distribute and modify it. 908e312fdSmrg 1008e312fdSmrgBasic Installation 1108e312fdSmrg================== 1208e312fdSmrg 1308e312fdSmrg Briefly, the shell commands `./configure; make; make install' should 1408e312fdSmrgconfigure, build, and install this package. The following 1508e312fdSmrgmore-detailed instructions are generic; see the `README' file for 1608e312fdSmrginstructions specific to this package. 1708e312fdSmrg 1808e312fdSmrg The `configure' shell script attempts to guess correct values for 1908e312fdSmrgvarious system-dependent variables used during compilation. It uses 2008e312fdSmrgthose values to create a `Makefile' in each directory of the package. 2108e312fdSmrgIt may also create one or more `.h' files containing system-dependent 2208e312fdSmrgdefinitions. Finally, it creates a shell script `config.status' that 2308e312fdSmrgyou can run in the future to recreate the current configuration, and a 2408e312fdSmrgfile `config.log' containing compiler output (useful mainly for 2508e312fdSmrgdebugging `configure'). 2608e312fdSmrg 2708e312fdSmrg It can also use an optional file (typically called `config.cache' 2808e312fdSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 2908e312fdSmrgthe results of its tests to speed up reconfiguring. Caching is 3008e312fdSmrgdisabled by default to prevent problems with accidental use of stale 3108e312fdSmrgcache files. 3208e312fdSmrg 3308e312fdSmrg If you need to do unusual things to compile the package, please try 3408e312fdSmrgto figure out how `configure' could check whether to do them, and mail 3508e312fdSmrgdiffs or instructions to the address given in the `README' so they can 3608e312fdSmrgbe considered for the next release. If you are using the cache, and at 3708e312fdSmrgsome point `config.cache' contains results you don't want to keep, you 3808e312fdSmrgmay remove or edit it. 3908e312fdSmrg 4008e312fdSmrg The file `configure.ac' (or `configure.in') is used to create 4108e312fdSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 4208e312fdSmrgyou want to change it or regenerate `configure' using a newer version 4308e312fdSmrgof `autoconf'. 4408e312fdSmrg 4508e312fdSmrgThe simplest way to compile this package is: 4608e312fdSmrg 4708e312fdSmrg 1. `cd' to the directory containing the package's source code and type 4808e312fdSmrg `./configure' to configure the package for your system. 4908e312fdSmrg 5008e312fdSmrg Running `configure' might take a while. While running, it prints 5108e312fdSmrg some messages telling which features it is checking for. 5208e312fdSmrg 5308e312fdSmrg 2. Type `make' to compile the package. 5408e312fdSmrg 5508e312fdSmrg 3. Optionally, type `make check' to run any self-tests that come with 5608e312fdSmrg the package. 5708e312fdSmrg 5808e312fdSmrg 4. Type `make install' to install the programs and any data files and 5908e312fdSmrg documentation. 6008e312fdSmrg 6108e312fdSmrg 5. You can remove the program binaries and object files from the 6208e312fdSmrg source code directory by typing `make clean'. To also remove the 6308e312fdSmrg files that `configure' created (so you can compile the package for 6408e312fdSmrg a different kind of computer), type `make distclean'. There is 6508e312fdSmrg also a `make maintainer-clean' target, but that is intended mainly 6608e312fdSmrg for the package's developers. If you use it, you may have to get 6708e312fdSmrg all sorts of other programs in order to regenerate files that came 6808e312fdSmrg with the distribution. 6908e312fdSmrg 7008e312fdSmrg 6. Often, you can also type `make uninstall' to remove the installed 7108e312fdSmrg files again. 7208e312fdSmrg 7308e312fdSmrgCompilers and Options 7408e312fdSmrg===================== 7508e312fdSmrg 7608e312fdSmrg Some systems require unusual options for compilation or linking that 7708e312fdSmrgthe `configure' script does not know about. Run `./configure --help' 7808e312fdSmrgfor details on some of the pertinent environment variables. 7908e312fdSmrg 8008e312fdSmrg You can give `configure' initial values for configuration parameters 8108e312fdSmrgby setting variables in the command line or in the environment. Here 8208e312fdSmrgis an example: 8308e312fdSmrg 8408e312fdSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 8508e312fdSmrg 8608e312fdSmrg *Note Defining Variables::, for more details. 8708e312fdSmrg 8808e312fdSmrgCompiling For Multiple Architectures 8908e312fdSmrg==================================== 9008e312fdSmrg 9108e312fdSmrg You can compile the package for more than one kind of computer at the 9208e312fdSmrgsame time, by placing the object files for each architecture in their 9308e312fdSmrgown directory. To do this, you can use GNU `make'. `cd' to the 9408e312fdSmrgdirectory where you want the object files and executables to go and run 9508e312fdSmrgthe `configure' script. `configure' automatically checks for the 9608e312fdSmrgsource code in the directory that `configure' is in and in `..'. 9708e312fdSmrg 9808e312fdSmrg With a non-GNU `make', it is safer to compile the package for one 9908e312fdSmrgarchitecture at a time in the source code directory. After you have 10008e312fdSmrginstalled the package for one architecture, use `make distclean' before 10108e312fdSmrgreconfiguring for another architecture. 10208e312fdSmrg 10308e312fdSmrg On MacOS X 10.5 and later systems, you can create libraries and 10408e312fdSmrgexecutables that work on multiple system types--known as "fat" or 10508e312fdSmrg"universal" binaries--by specifying multiple `-arch' options to the 10608e312fdSmrgcompiler but only a single `-arch' option to the preprocessor. Like 10708e312fdSmrgthis: 10808e312fdSmrg 10908e312fdSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11008e312fdSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 11108e312fdSmrg CPP="gcc -E" CXXCPP="g++ -E" 11208e312fdSmrg 11308e312fdSmrg This is not guaranteed to produce working output in all cases, you 11408e312fdSmrgmay have to build one architecture at a time and combine the results 11508e312fdSmrgusing the `lipo' tool if you have problems. 11608e312fdSmrg 11708e312fdSmrgInstallation Names 11808e312fdSmrg================== 11908e312fdSmrg 12008e312fdSmrg By default, `make install' installs the package's commands under 12108e312fdSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 12208e312fdSmrgcan specify an installation prefix other than `/usr/local' by giving 12308e312fdSmrg`configure' the option `--prefix=PREFIX'. 12408e312fdSmrg 12508e312fdSmrg You can specify separate installation prefixes for 12608e312fdSmrgarchitecture-specific files and architecture-independent files. If you 12708e312fdSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 12808e312fdSmrgPREFIX as the prefix for installing programs and libraries. 12908e312fdSmrgDocumentation and other data files still use the regular prefix. 13008e312fdSmrg 13108e312fdSmrg In addition, if you use an unusual directory layout you can give 13208e312fdSmrgoptions like `--bindir=DIR' to specify different values for particular 13308e312fdSmrgkinds of files. Run `configure --help' for a list of the directories 13408e312fdSmrgyou can set and what kinds of files go in them. 13508e312fdSmrg 13608e312fdSmrg If the package supports it, you can cause programs to be installed 13708e312fdSmrgwith an extra prefix or suffix on their names by giving `configure' the 13808e312fdSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 13908e312fdSmrg 14008e312fdSmrgOptional Features 14108e312fdSmrg================= 14208e312fdSmrg 14308e312fdSmrg Some packages pay attention to `--enable-FEATURE' options to 14408e312fdSmrg`configure', where FEATURE indicates an optional part of the package. 14508e312fdSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 14608e312fdSmrgis something like `gnu-as' or `x' (for the X Window System). The 14708e312fdSmrg`README' should mention any `--enable-' and `--with-' options that the 14808e312fdSmrgpackage recognizes. 14908e312fdSmrg 15008e312fdSmrg For packages that use the X Window System, `configure' can usually 15108e312fdSmrgfind the X include and library files automatically, but if it doesn't, 15208e312fdSmrgyou can use the `configure' options `--x-includes=DIR' and 15308e312fdSmrg`--x-libraries=DIR' to specify their locations. 15408e312fdSmrg 15508e312fdSmrgParticular systems 15608e312fdSmrg================== 15708e312fdSmrg 15808e312fdSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 15908e312fdSmrgCC is not installed, it is recommended to use the following options in 16008e312fdSmrgorder to use an ANSI C compiler: 16108e312fdSmrg 16208e312fdSmrg ./configure CC="cc -Ae" 16308e312fdSmrg 16408e312fdSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 16508e312fdSmrg 16608e312fdSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 16708e312fdSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 16808e312fdSmrga workaround. If GNU CC is not installed, it is therefore recommended 16908e312fdSmrgto try 17008e312fdSmrg 17108e312fdSmrg ./configure CC="cc" 17208e312fdSmrg 17308e312fdSmrgand if that doesn't work, try 17408e312fdSmrg 17508e312fdSmrg ./configure CC="cc -nodtk" 17608e312fdSmrg 17708e312fdSmrgSpecifying the System Type 17808e312fdSmrg========================== 17908e312fdSmrg 18008e312fdSmrg There may be some features `configure' cannot figure out 18108e312fdSmrgautomatically, but needs to determine by the type of machine the package 18208e312fdSmrgwill run on. Usually, assuming the package is built to be run on the 18308e312fdSmrg_same_ architectures, `configure' can figure that out, but if it prints 18408e312fdSmrga message saying it cannot guess the machine type, give it the 18508e312fdSmrg`--build=TYPE' option. TYPE can either be a short name for the system 18608e312fdSmrgtype, such as `sun4', or a canonical name which has the form: 18708e312fdSmrg 18808e312fdSmrg CPU-COMPANY-SYSTEM 18908e312fdSmrg 19008e312fdSmrgwhere SYSTEM can have one of these forms: 19108e312fdSmrg 19208e312fdSmrg OS KERNEL-OS 19308e312fdSmrg 19408e312fdSmrg See the file `config.sub' for the possible values of each field. If 19508e312fdSmrg`config.sub' isn't included in this package, then this package doesn't 19608e312fdSmrgneed to know the machine type. 19708e312fdSmrg 19808e312fdSmrg If you are _building_ compiler tools for cross-compiling, you should 19908e312fdSmrguse the option `--target=TYPE' to select the type of system they will 20008e312fdSmrgproduce code for. 20108e312fdSmrg 20208e312fdSmrg If you want to _use_ a cross compiler, that generates code for a 20308e312fdSmrgplatform different from the build platform, you should specify the 20408e312fdSmrg"host" platform (i.e., that on which the generated programs will 20508e312fdSmrgeventually be run) with `--host=TYPE'. 20608e312fdSmrg 20708e312fdSmrgSharing Defaults 20808e312fdSmrg================ 20908e312fdSmrg 21008e312fdSmrg If you want to set default values for `configure' scripts to share, 21108e312fdSmrgyou can create a site shell script called `config.site' that gives 21208e312fdSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 21308e312fdSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 21408e312fdSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 21508e312fdSmrg`CONFIG_SITE' environment variable to the location of the site script. 21608e312fdSmrgA warning: not all `configure' scripts look for a site script. 21708e312fdSmrg 21808e312fdSmrgDefining Variables 21908e312fdSmrg================== 22008e312fdSmrg 22108e312fdSmrg Variables not defined in a site shell script can be set in the 22208e312fdSmrgenvironment passed to `configure'. However, some packages may run 22308e312fdSmrgconfigure again during the build, and the customized values of these 22408e312fdSmrgvariables may be lost. In order to avoid this problem, you should set 22508e312fdSmrgthem in the `configure' command line, using `VAR=value'. For example: 22608e312fdSmrg 22708e312fdSmrg ./configure CC=/usr/local2/bin/gcc 22808e312fdSmrg 22908e312fdSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 23008e312fdSmrgoverridden in the site shell script). 23108e312fdSmrg 23208e312fdSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 23308e312fdSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 23408e312fdSmrg 23508e312fdSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 23608e312fdSmrg 23708e312fdSmrg`configure' Invocation 23808e312fdSmrg====================== 23908e312fdSmrg 24008e312fdSmrg `configure' recognizes the following options to control how it 24108e312fdSmrgoperates. 24208e312fdSmrg 24308e312fdSmrg`--help' 24408e312fdSmrg`-h' 24508e312fdSmrg Print a summary of all of the options to `configure', and exit. 24608e312fdSmrg 24708e312fdSmrg`--help=short' 24808e312fdSmrg`--help=recursive' 24908e312fdSmrg Print a summary of the options unique to this package's 25008e312fdSmrg `configure', and exit. The `short' variant lists options used 25108e312fdSmrg only in the top level, while the `recursive' variant lists options 25208e312fdSmrg also present in any nested packages. 25308e312fdSmrg 25408e312fdSmrg`--version' 25508e312fdSmrg`-V' 25608e312fdSmrg Print the version of Autoconf used to generate the `configure' 25708e312fdSmrg script, and exit. 25808e312fdSmrg 25908e312fdSmrg`--cache-file=FILE' 26008e312fdSmrg Enable the cache: use and save the results of the tests in FILE, 26108e312fdSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 26208e312fdSmrg disable caching. 26308e312fdSmrg 26408e312fdSmrg`--config-cache' 26508e312fdSmrg`-C' 26608e312fdSmrg Alias for `--cache-file=config.cache'. 26708e312fdSmrg 26808e312fdSmrg`--quiet' 26908e312fdSmrg`--silent' 27008e312fdSmrg`-q' 27108e312fdSmrg Do not print messages saying which checks are being made. To 27208e312fdSmrg suppress all normal output, redirect it to `/dev/null' (any error 27308e312fdSmrg messages will still be shown). 27408e312fdSmrg 27508e312fdSmrg`--srcdir=DIR' 27608e312fdSmrg Look for the package's source code in directory DIR. Usually 27708e312fdSmrg `configure' can determine that directory automatically. 27808e312fdSmrg 27908e312fdSmrg`--prefix=DIR' 28008e312fdSmrg Use DIR as the installation prefix. *Note Installation Names:: 28108e312fdSmrg for more details, including other options available for fine-tuning 28208e312fdSmrg the installation locations. 28308e312fdSmrg 28408e312fdSmrg`--no-create' 28508e312fdSmrg`-n' 28608e312fdSmrg Run the configure checks, but stop before creating any output 28708e312fdSmrg files. 28808e312fdSmrg 28908e312fdSmrg`configure' also accepts some other, not widely useful, options. Run 29008e312fdSmrg`configure --help' for more details. 29108e312fdSmrg 292