1These are generic installation instructions. 2 3Prerequisites 4============= 5 6 This package depends on a few other packages. They are listed in 7the file `DEPENDENCIES'. It is recommended to install the listed 8packages before installing this package. 9 10Basic Installation 11================== 12 13 The `configure' shell script attempts to guess correct values for 14various system-dependent variables used during compilation. It uses 15those values to create a `Makefile' in each directory of the package. 16It may also create one or more `.h' files containing system-dependent 17definitions. Finally, it creates a shell script `config.status' that 18you can run in the future to recreate the current configuration, a file 19`config.cache' that saves the results of its tests to speed up 20reconfiguring, and a file `config.log' containing compiler output 21(useful mainly for debugging `configure'). 22 23 If you need to do unusual things to compile the package, please try 24to figure out how `configure' could check whether to do them, and mail 25diffs or instructions to the address given in the `README' so they can 26be considered for the next release. If at some point `config.cache' 27contains results you don't want to keep, you may remove or edit it. 28 29 The file `configure.ac' is used to create `configure' by a program 30called `autoconf'. You only need `configure.ac' if you want to change 31it or regenerate `configure' using a newer version of `autoconf'. 32 33The simplest way to compile this package is: 34 35 1. `cd' to the directory containing the package's source code and type 36 `./configure' to configure the package for your system. If you're 37 using `csh' on an old version of System V, you might need to type 38 `sh ./configure' instead to prevent `csh' from trying to execute 39 `configure' itself. 40 41 Running `configure' takes awhile. While running, it prints some 42 messages telling which features it is checking for. 43 44 2. Type `make' to compile the package. 45 46 3. Optionally, type `make check' to run any self-tests that come with 47 the package. 48 49 4. Type `make install' to install the programs and any data files and 50 documentation. 51 52 5. You can remove the program binaries and object files from the 53 source code directory by typing `make clean'. To also remove the 54 files that `configure' created (so you can compile the package for 55 a different kind of computer), type `make distclean'. There is 56 also a `make maintainer-clean' target, but that is intended mainly 57 for the package's developers. If you use it, you may have to get 58 all sorts of other programs in order to regenerate files that came 59 with the distribution. 60 61Compilers and Options 62===================== 63 64 Some systems require unusual options for compilation or linking that 65the `configure' script does not know about. You can give `configure' 66initial values for variables as arguments. You can do it like this: 67 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix 68 69Compiling For Multiple Architectures 70==================================== 71 72 You can compile the package for more than one kind of computer at the 73same time, by placing the object files for each architecture in their 74own directory. To do this, you must use a version of `make' that 75supports the `VPATH' variable, such as GNU `make'. `cd' to the 76directory where you want the object files and executables to go and run 77the `configure' script. `configure' automatically checks for the 78source code in the directory that `configure' is in and in `..'. 79 80 If you have to use a `make' that does not supports the `VPATH' 81variable, you have to compile the package for one architecture at a time 82in the source code directory. After you have installed the package for 83one architecture, use `make distclean' before reconfiguring for another 84architecture. 85 86Installation Names 87================== 88 89 By default, `make install' will install the package's files in 90`/usr/local/bin', `/usr/local/man', etc. You can specify an 91installation prefix other than `/usr/local' by giving `configure' the 92option `--prefix=PATH'. 93 94 You can specify separate installation prefixes for 95architecture-specific files and architecture-independent files. If you 96give `configure' the option `--exec-prefix=PATH', the package will use 97PATH as the prefix for installing programs and libraries. 98Documentation and other data files will still use the regular prefix. 99 100 In addition, if you use an unusual directory layout you can give 101options like `--bindir=PATH' to specify different values for particular 102kinds of files. Run `configure --help' for a list of the directories 103you can set and what kinds of files go in them. 104 105 If the package supports it, you can cause programs to be installed 106with an extra prefix or suffix on their names by giving `configure' the 107option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 108 109Enabling Relocatability 110======================= 111 112 It has been a pain for many users of GNU packages for a long time 113that packages are not relocatable. It means a user cannot copy a 114program, installed by another user on the same machine, to his home 115directory, and have it work correctly (including i18n). So many users 116need to go through `configure; make; make install' with all its 117dependencies, options, and hurdles. 118 119 Red Hat, Debian, and similar package systems solve the "ease of 120installation" problem, but they hardwire path names, usually to `/usr' 121or `/usr/local'. This means that users need root privileges to install 122a binary package, and prevents installing two different versions of the 123same binary package. 124 125 A relocatable program can be moved or copied to a different location 126on the filesystem. It is possible to make symlinks to the installed 127and moved programs, and invoke them through the symlink. It is possible 128to do the same thing with a hard link _only_ if the hard link file is 129in the same directory as the real program. 130 131 To configure a program to be relocatable, add `--enable-relocatable' 132to the `configure' command line. 133 134 On some OSes the executables remember the location of shared 135libraries and prefer them over any other search path. Therefore, such 136an executable will look for its shared libraries first in the original 137installation directory and only then in the current installation 138directory. Thus, for reliability, it is best to also give a `--prefix' 139option pointing to a directory that does not exist now and which never 140will be created, e.g. `--prefix=/nonexistent'. You may use 141`DESTDIR=DEST-DIR' on the `make' command line to avoid installing into 142that directory. 143 144 We do not recommend using a prefix writable by unprivileged users 145(e.g. `/tmp/inst$$') because such a directory can be recreated by an 146unprivileged user after the original directory has been removed. We 147also do not recommend prefixes that might be behind an automounter 148(e.g. `$HOME/inst$$') because of the performance impact of directory 149searching. 150 151 Here's a sample installation run that takes into account all these 152recommendations: 153 154 ./configure --enable-relocatable --prefix=/nonexistent 155 make 156 make install DESTDIR=/tmp/inst$$ 157 158 Installation with `--enable-relocatable' will not work for setuid or 159setgid executables, because such executables search only system library 160paths for security reasons. Also, installation with 161`--enable-relocatable' might not work on OpenBSD, when the package 162contains shared libraries and libtool versions 1.5.xx are used. 163 164 The runtime penalty and size penalty are negligible on GNU/Linux 165(just one system call more when an executable is launched), and small on 166other systems (the wrapper program just sets an environment variable 167and executes the real program). 168 169Optional Features 170================= 171 172 Some packages pay attention to `--enable-FEATURE' options to 173`configure', where FEATURE indicates an optional part of the package. 174They may also pay attention to `--with-PACKAGE' options, where PACKAGE 175is something like `gnu-as' or `x' (for the X Window System). The 176`README' should mention any `--enable-' and `--with-' options that the 177package recognizes. 178 179 For packages that use the X Window System, `configure' can usually 180find the X include and library files automatically, but if it doesn't, 181you can use the `configure' options `--x-includes=DIR' and 182`--x-libraries=DIR' to specify their locations. 183 184 For packages that use the GNU libiconv library, you can use the 185`configure' option `--with-libiconv-prefix' to specify the prefix you 186used while installing GNU libiconv. This option is not necessary if 187that other prefix is the same as the one now specified through --prefix. 188 189 For packages that use the GNU libintl library, you can use the 190`configure' option `--with-libintl-prefix' to specify the prefix you 191used while installing GNU gettext-runtime. This option is not necessary if 192that other prefix is the same as the one now specified through --prefix. 193 194Particular Systems 195================== 196 197 On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC 198is not installed, it is recommended to use the following options in order 199to use an ANSI C compiler: 200 201 ./configure CC="cc -Ae" 202 203 On OSF/1 a.k.a. Tru64, some versions of the default C compiler don't grok 204its <wchar.h> header file. The option -nodtk can be used as a workaround. 205If GNU CC is not installed, it is therefore recommended to try 206 207 ./configure CC="cc" 208 209and if that doesn't work, try 210 211 ./configure CC="cc -nodtk" 212 213 On AIX 3, the C include files by default don't define some necessary 214prototype declarations. If GNU CC is not installed, it is recommended to 215use the following options: 216 217 ./configure CC="xlc -D_ALL_SOURCE" 218 219 On BeOS, user installed software goes in /boot/home/config, not 220/usr/local. It is recommended to use the following options: 221 222 ./configure --prefix=/boot/home/config 223 224Specifying the System Type 225========================== 226 227 There may be some features `configure' can not figure out 228automatically, but needs to determine by the type of host the package 229will run on. Usually `configure' can figure that out, but if it prints 230a message saying it can not guess the host type, give it the 231`--host=TYPE' option. TYPE can either be a short name for the system 232type, such as `sun4', or a canonical name with three fields: 233 CPU-COMPANY-SYSTEM 234 235See the file `config.sub' for the possible values of each field. If 236`config.sub' isn't included in this package, then this package doesn't 237need to know the host type. 238 239 If you are building compiler tools for cross-compiling, you can also 240use the `--target=TYPE' option to select the type of system they will 241produce code for and the `--build=TYPE' option to select the type of 242system on which you are compiling the package. 243 244Sharing Defaults 245================ 246 247 If you want to set default values for `configure' scripts to share, 248you can create a site shell script called `config.site' that gives 249default values for variables like `CC', `cache_file', and `prefix'. 250`configure' looks for `PREFIX/share/config.site' if it exists, then 251`PREFIX/etc/config.site' if it exists. Or, you can set the 252`CONFIG_SITE' environment variable to the location of the site script. 253A warning: not all `configure' scripts look for a site script. 254 255Operation Controls 256================== 257 258 `configure' recognizes the following options to control how it 259operates. 260 261`--cache-file=FILE' 262 Use and save the results of the tests in FILE instead of 263 `./config.cache'. Set FILE to `/dev/null' to disable caching, for 264 debugging `configure'. 265 266`--help' 267 Print a summary of the options to `configure', and exit. 268 269`--quiet' 270`--silent' 271`-q' 272 Do not print messages saying which checks are being made. To 273 suppress all normal output, redirect it to `/dev/null' (any error 274 messages will still be shown). 275 276`--srcdir=DIR' 277 Look for the package's source code in directory DIR. Usually 278 `configure' can determine that directory automatically. 279 280`--version' 281 Print the version of Autoconf used to generate the `configure' 282 script, and exit. 283 284`configure' also accepts some other, not widely useful, options. 285 286