1f5effb2eSmrgInstallation Instructions 2f5effb2eSmrg************************* 3f5effb2eSmrg 4585aa3f7SmrgCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 5585aa3f7SmrgInc. 6f5effb2eSmrg 7585aa3f7Smrg Copying and distribution of this file, with or without modification, 8585aa3f7Smrgare permitted in any medium without royalty provided the copyright 9585aa3f7Smrgnotice and this notice are preserved. This file is offered as-is, 10585aa3f7Smrgwithout warranty of any kind. 11f5effb2eSmrg 12f5effb2eSmrgBasic Installation 13f5effb2eSmrg================== 14f5effb2eSmrg 15f5effb2eSmrg Briefly, the shell commands `./configure; make; make install' should 16f5effb2eSmrgconfigure, build, and install this package. The following 17f5effb2eSmrgmore-detailed instructions are generic; see the `README' file for 18585aa3f7Smrginstructions specific to this package. Some packages provide this 19585aa3f7Smrg`INSTALL' file but do not implement all of the features documented 20585aa3f7Smrgbelow. The lack of an optional feature in a given package is not 21585aa3f7Smrgnecessarily a bug. More recommendations for GNU packages can be found 22585aa3f7Smrgin *note Makefile Conventions: (standards)Makefile Conventions. 23f5effb2eSmrg 24f5effb2eSmrg The `configure' shell script attempts to guess correct values for 25f5effb2eSmrgvarious system-dependent variables used during compilation. It uses 26f5effb2eSmrgthose values to create a `Makefile' in each directory of the package. 27f5effb2eSmrgIt may also create one or more `.h' files containing system-dependent 28f5effb2eSmrgdefinitions. Finally, it creates a shell script `config.status' that 29f5effb2eSmrgyou can run in the future to recreate the current configuration, and a 30f5effb2eSmrgfile `config.log' containing compiler output (useful mainly for 31f5effb2eSmrgdebugging `configure'). 32f5effb2eSmrg 33f5effb2eSmrg It can also use an optional file (typically called `config.cache' 34f5effb2eSmrgand enabled with `--cache-file=config.cache' or simply `-C') that saves 35f5effb2eSmrgthe results of its tests to speed up reconfiguring. Caching is 36f5effb2eSmrgdisabled by default to prevent problems with accidental use of stale 37f5effb2eSmrgcache files. 38f5effb2eSmrg 39f5effb2eSmrg If you need to do unusual things to compile the package, please try 40f5effb2eSmrgto figure out how `configure' could check whether to do them, and mail 41f5effb2eSmrgdiffs or instructions to the address given in the `README' so they can 42f5effb2eSmrgbe considered for the next release. If you are using the cache, and at 43f5effb2eSmrgsome point `config.cache' contains results you don't want to keep, you 44f5effb2eSmrgmay remove or edit it. 45f5effb2eSmrg 46f5effb2eSmrg The file `configure.ac' (or `configure.in') is used to create 47f5effb2eSmrg`configure' by a program called `autoconf'. You need `configure.ac' if 48f5effb2eSmrgyou want to change it or regenerate `configure' using a newer version 49f5effb2eSmrgof `autoconf'. 50f5effb2eSmrg 51585aa3f7Smrg The simplest way to compile this package is: 52f5effb2eSmrg 53f5effb2eSmrg 1. `cd' to the directory containing the package's source code and type 54f5effb2eSmrg `./configure' to configure the package for your system. 55f5effb2eSmrg 56f5effb2eSmrg Running `configure' might take a while. While running, it prints 57f5effb2eSmrg some messages telling which features it is checking for. 58f5effb2eSmrg 59f5effb2eSmrg 2. Type `make' to compile the package. 60f5effb2eSmrg 61f5effb2eSmrg 3. Optionally, type `make check' to run any self-tests that come with 62585aa3f7Smrg the package, generally using the just-built uninstalled binaries. 63f5effb2eSmrg 64f5effb2eSmrg 4. Type `make install' to install the programs and any data files and 65585aa3f7Smrg documentation. When installing into a prefix owned by root, it is 66585aa3f7Smrg recommended that the package be configured and built as a regular 67585aa3f7Smrg user, and only the `make install' phase executed with root 68585aa3f7Smrg privileges. 69585aa3f7Smrg 70585aa3f7Smrg 5. Optionally, type `make installcheck' to repeat any self-tests, but 71585aa3f7Smrg this time using the binaries in their final installed location. 72585aa3f7Smrg This target does not install anything. Running this target as a 73585aa3f7Smrg regular user, particularly if the prior `make install' required 74585aa3f7Smrg root privileges, verifies that the installation completed 75585aa3f7Smrg correctly. 76585aa3f7Smrg 77585aa3f7Smrg 6. You can remove the program binaries and object files from the 78f5effb2eSmrg source code directory by typing `make clean'. To also remove the 79f5effb2eSmrg files that `configure' created (so you can compile the package for 80f5effb2eSmrg a different kind of computer), type `make distclean'. There is 81f5effb2eSmrg also a `make maintainer-clean' target, but that is intended mainly 82f5effb2eSmrg for the package's developers. If you use it, you may have to get 83f5effb2eSmrg all sorts of other programs in order to regenerate files that came 84f5effb2eSmrg with the distribution. 85f5effb2eSmrg 86585aa3f7Smrg 7. Often, you can also type `make uninstall' to remove the installed 87585aa3f7Smrg files again. In practice, not all packages have tested that 88585aa3f7Smrg uninstallation works correctly, even though it is required by the 89585aa3f7Smrg GNU Coding Standards. 90585aa3f7Smrg 91585aa3f7Smrg 8. Some packages, particularly those that use Automake, provide `make 92585aa3f7Smrg distcheck', which can by used by developers to test that all other 93585aa3f7Smrg targets like `make install' and `make uninstall' work correctly. 94585aa3f7Smrg This target is generally not run by end users. 95f5effb2eSmrg 96f5effb2eSmrgCompilers and Options 97f5effb2eSmrg===================== 98f5effb2eSmrg 99f5effb2eSmrg Some systems require unusual options for compilation or linking that 100f5effb2eSmrgthe `configure' script does not know about. Run `./configure --help' 101f5effb2eSmrgfor details on some of the pertinent environment variables. 102f5effb2eSmrg 103f5effb2eSmrg You can give `configure' initial values for configuration parameters 104f5effb2eSmrgby setting variables in the command line or in the environment. Here 105f5effb2eSmrgis an example: 106f5effb2eSmrg 107f5effb2eSmrg ./configure CC=c99 CFLAGS=-g LIBS=-lposix 108f5effb2eSmrg 109f5effb2eSmrg *Note Defining Variables::, for more details. 110f5effb2eSmrg 111f5effb2eSmrgCompiling For Multiple Architectures 112f5effb2eSmrg==================================== 113f5effb2eSmrg 114f5effb2eSmrg You can compile the package for more than one kind of computer at the 115f5effb2eSmrgsame time, by placing the object files for each architecture in their 116f5effb2eSmrgown directory. To do this, you can use GNU `make'. `cd' to the 117f5effb2eSmrgdirectory where you want the object files and executables to go and run 118f5effb2eSmrgthe `configure' script. `configure' automatically checks for the 119585aa3f7Smrgsource code in the directory that `configure' is in and in `..'. This 120585aa3f7Smrgis known as a "VPATH" build. 121f5effb2eSmrg 122f5effb2eSmrg With a non-GNU `make', it is safer to compile the package for one 123f5effb2eSmrgarchitecture at a time in the source code directory. After you have 124f5effb2eSmrginstalled the package for one architecture, use `make distclean' before 125f5effb2eSmrgreconfiguring for another architecture. 126f5effb2eSmrg 127f5effb2eSmrg On MacOS X 10.5 and later systems, you can create libraries and 128f5effb2eSmrgexecutables that work on multiple system types--known as "fat" or 129f5effb2eSmrg"universal" binaries--by specifying multiple `-arch' options to the 130f5effb2eSmrgcompiler but only a single `-arch' option to the preprocessor. Like 131f5effb2eSmrgthis: 132f5effb2eSmrg 133f5effb2eSmrg ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 134f5effb2eSmrg CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 135f5effb2eSmrg CPP="gcc -E" CXXCPP="g++ -E" 136f5effb2eSmrg 137f5effb2eSmrg This is not guaranteed to produce working output in all cases, you 138f5effb2eSmrgmay have to build one architecture at a time and combine the results 139f5effb2eSmrgusing the `lipo' tool if you have problems. 140f5effb2eSmrg 141f5effb2eSmrgInstallation Names 142f5effb2eSmrg================== 143f5effb2eSmrg 144f5effb2eSmrg By default, `make install' installs the package's commands under 145f5effb2eSmrg`/usr/local/bin', include files under `/usr/local/include', etc. You 146f5effb2eSmrgcan specify an installation prefix other than `/usr/local' by giving 147585aa3f7Smrg`configure' the option `--prefix=PREFIX', where PREFIX must be an 148585aa3f7Smrgabsolute file name. 149f5effb2eSmrg 150f5effb2eSmrg You can specify separate installation prefixes for 151f5effb2eSmrgarchitecture-specific files and architecture-independent files. If you 152f5effb2eSmrgpass the option `--exec-prefix=PREFIX' to `configure', the package uses 153f5effb2eSmrgPREFIX as the prefix for installing programs and libraries. 154f5effb2eSmrgDocumentation and other data files still use the regular prefix. 155f5effb2eSmrg 156f5effb2eSmrg In addition, if you use an unusual directory layout you can give 157f5effb2eSmrgoptions like `--bindir=DIR' to specify different values for particular 158f5effb2eSmrgkinds of files. Run `configure --help' for a list of the directories 159585aa3f7Smrgyou can set and what kinds of files go in them. In general, the 160585aa3f7Smrgdefault for these options is expressed in terms of `${prefix}', so that 161585aa3f7Smrgspecifying just `--prefix' will affect all of the other directory 162585aa3f7Smrgspecifications that were not explicitly provided. 163585aa3f7Smrg 164585aa3f7Smrg The most portable way to affect installation locations is to pass the 165585aa3f7Smrgcorrect locations to `configure'; however, many packages provide one or 166585aa3f7Smrgboth of the following shortcuts of passing variable assignments to the 167585aa3f7Smrg`make install' command line to change installation locations without 168585aa3f7Smrghaving to reconfigure or recompile. 169585aa3f7Smrg 170585aa3f7Smrg The first method involves providing an override variable for each 171585aa3f7Smrgaffected directory. For example, `make install 172585aa3f7Smrgprefix=/alternate/directory' will choose an alternate location for all 173585aa3f7Smrgdirectory configuration variables that were expressed in terms of 174585aa3f7Smrg`${prefix}'. Any directories that were specified during `configure', 175585aa3f7Smrgbut not in terms of `${prefix}', must each be overridden at install 176585aa3f7Smrgtime for the entire installation to be relocated. The approach of 177585aa3f7Smrgmakefile variable overrides for each directory variable is required by 178585aa3f7Smrgthe GNU Coding Standards, and ideally causes no recompilation. 179585aa3f7SmrgHowever, some platforms have known limitations with the semantics of 180585aa3f7Smrgshared libraries that end up requiring recompilation when using this 181585aa3f7Smrgmethod, particularly noticeable in packages that use GNU Libtool. 182585aa3f7Smrg 183585aa3f7Smrg The second method involves providing the `DESTDIR' variable. For 184585aa3f7Smrgexample, `make install DESTDIR=/alternate/directory' will prepend 185585aa3f7Smrg`/alternate/directory' before all installation names. The approach of 186585aa3f7Smrg`DESTDIR' overrides is not required by the GNU Coding Standards, and 187585aa3f7Smrgdoes not work on platforms that have drive letters. On the other hand, 188585aa3f7Smrgit does better at avoiding recompilation issues, and works well even 189585aa3f7Smrgwhen some directory options were not specified in terms of `${prefix}' 190585aa3f7Smrgat `configure' time. 191585aa3f7Smrg 192585aa3f7SmrgOptional Features 193585aa3f7Smrg================= 194f5effb2eSmrg 195f5effb2eSmrg If the package supports it, you can cause programs to be installed 196f5effb2eSmrgwith an extra prefix or suffix on their names by giving `configure' the 197f5effb2eSmrgoption `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 198f5effb2eSmrg 199f5effb2eSmrg Some packages pay attention to `--enable-FEATURE' options to 200f5effb2eSmrg`configure', where FEATURE indicates an optional part of the package. 201f5effb2eSmrgThey may also pay attention to `--with-PACKAGE' options, where PACKAGE 202f5effb2eSmrgis something like `gnu-as' or `x' (for the X Window System). The 203f5effb2eSmrg`README' should mention any `--enable-' and `--with-' options that the 204f5effb2eSmrgpackage recognizes. 205f5effb2eSmrg 206f5effb2eSmrg For packages that use the X Window System, `configure' can usually 207f5effb2eSmrgfind the X include and library files automatically, but if it doesn't, 208f5effb2eSmrgyou can use the `configure' options `--x-includes=DIR' and 209f5effb2eSmrg`--x-libraries=DIR' to specify their locations. 210f5effb2eSmrg 211585aa3f7Smrg Some packages offer the ability to configure how verbose the 212585aa3f7Smrgexecution of `make' will be. For these packages, running `./configure 213585aa3f7Smrg--enable-silent-rules' sets the default to minimal output, which can be 214585aa3f7Smrgoverridden with `make V=1'; while running `./configure 215585aa3f7Smrg--disable-silent-rules' sets the default to verbose, which can be 216585aa3f7Smrgoverridden with `make V=0'. 217585aa3f7Smrg 218f5effb2eSmrgParticular systems 219f5effb2eSmrg================== 220f5effb2eSmrg 221f5effb2eSmrg On HP-UX, the default C compiler is not ANSI C compatible. If GNU 222f5effb2eSmrgCC is not installed, it is recommended to use the following options in 223f5effb2eSmrgorder to use an ANSI C compiler: 224f5effb2eSmrg 225585aa3f7Smrg ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 226f5effb2eSmrg 227f5effb2eSmrgand if that doesn't work, install pre-built binaries of GCC for HP-UX. 228f5effb2eSmrg 229585aa3f7Smrg HP-UX `make' updates targets which have the same time stamps as 230585aa3f7Smrgtheir prerequisites, which makes it generally unusable when shipped 231585aa3f7Smrggenerated files such as `configure' are involved. Use GNU `make' 232585aa3f7Smrginstead. 233585aa3f7Smrg 234f5effb2eSmrg On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 235f5effb2eSmrgparse its `<wchar.h>' header file. The option `-nodtk' can be used as 236f5effb2eSmrga workaround. If GNU CC is not installed, it is therefore recommended 237f5effb2eSmrgto try 238f5effb2eSmrg 239f5effb2eSmrg ./configure CC="cc" 240f5effb2eSmrg 241f5effb2eSmrgand if that doesn't work, try 242f5effb2eSmrg 243f5effb2eSmrg ./configure CC="cc -nodtk" 244f5effb2eSmrg 245585aa3f7Smrg On Solaris, don't put `/usr/ucb' early in your `PATH'. This 246585aa3f7Smrgdirectory contains several dysfunctional programs; working variants of 247585aa3f7Smrgthese programs are available in `/usr/bin'. So, if you need `/usr/ucb' 248585aa3f7Smrgin your `PATH', put it _after_ `/usr/bin'. 249585aa3f7Smrg 250585aa3f7Smrg On Haiku, software installed for all users goes in `/boot/common', 251585aa3f7Smrgnot `/usr/local'. It is recommended to use the following options: 252585aa3f7Smrg 253585aa3f7Smrg ./configure --prefix=/boot/common 254585aa3f7Smrg 255f5effb2eSmrgSpecifying the System Type 256f5effb2eSmrg========================== 257f5effb2eSmrg 258f5effb2eSmrg There may be some features `configure' cannot figure out 259f5effb2eSmrgautomatically, but needs to determine by the type of machine the package 260f5effb2eSmrgwill run on. Usually, assuming the package is built to be run on the 261f5effb2eSmrg_same_ architectures, `configure' can figure that out, but if it prints 262f5effb2eSmrga message saying it cannot guess the machine type, give it the 263f5effb2eSmrg`--build=TYPE' option. TYPE can either be a short name for the system 264f5effb2eSmrgtype, such as `sun4', or a canonical name which has the form: 265f5effb2eSmrg 266f5effb2eSmrg CPU-COMPANY-SYSTEM 267f5effb2eSmrg 268f5effb2eSmrgwhere SYSTEM can have one of these forms: 269f5effb2eSmrg 270585aa3f7Smrg OS 271585aa3f7Smrg KERNEL-OS 272f5effb2eSmrg 273f5effb2eSmrg See the file `config.sub' for the possible values of each field. If 274f5effb2eSmrg`config.sub' isn't included in this package, then this package doesn't 275f5effb2eSmrgneed to know the machine type. 276f5effb2eSmrg 277f5effb2eSmrg If you are _building_ compiler tools for cross-compiling, you should 278f5effb2eSmrguse the option `--target=TYPE' to select the type of system they will 279f5effb2eSmrgproduce code for. 280f5effb2eSmrg 281f5effb2eSmrg If you want to _use_ a cross compiler, that generates code for a 282f5effb2eSmrgplatform different from the build platform, you should specify the 283f5effb2eSmrg"host" platform (i.e., that on which the generated programs will 284f5effb2eSmrgeventually be run) with `--host=TYPE'. 285f5effb2eSmrg 286f5effb2eSmrgSharing Defaults 287f5effb2eSmrg================ 288f5effb2eSmrg 289f5effb2eSmrg If you want to set default values for `configure' scripts to share, 290f5effb2eSmrgyou can create a site shell script called `config.site' that gives 291f5effb2eSmrgdefault values for variables like `CC', `cache_file', and `prefix'. 292f5effb2eSmrg`configure' looks for `PREFIX/share/config.site' if it exists, then 293f5effb2eSmrg`PREFIX/etc/config.site' if it exists. Or, you can set the 294f5effb2eSmrg`CONFIG_SITE' environment variable to the location of the site script. 295f5effb2eSmrgA warning: not all `configure' scripts look for a site script. 296f5effb2eSmrg 297f5effb2eSmrgDefining Variables 298f5effb2eSmrg================== 299f5effb2eSmrg 300f5effb2eSmrg Variables not defined in a site shell script can be set in the 301f5effb2eSmrgenvironment passed to `configure'. However, some packages may run 302f5effb2eSmrgconfigure again during the build, and the customized values of these 303f5effb2eSmrgvariables may be lost. In order to avoid this problem, you should set 304f5effb2eSmrgthem in the `configure' command line, using `VAR=value'. For example: 305f5effb2eSmrg 306f5effb2eSmrg ./configure CC=/usr/local2/bin/gcc 307f5effb2eSmrg 308f5effb2eSmrgcauses the specified `gcc' to be used as the C compiler (unless it is 309f5effb2eSmrgoverridden in the site shell script). 310f5effb2eSmrg 311f5effb2eSmrgUnfortunately, this technique does not work for `CONFIG_SHELL' due to 312f5effb2eSmrgan Autoconf bug. Until the bug is fixed you can use this workaround: 313f5effb2eSmrg 314f5effb2eSmrg CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 315f5effb2eSmrg 316f5effb2eSmrg`configure' Invocation 317f5effb2eSmrg====================== 318f5effb2eSmrg 319f5effb2eSmrg `configure' recognizes the following options to control how it 320f5effb2eSmrgoperates. 321f5effb2eSmrg 322f5effb2eSmrg`--help' 323f5effb2eSmrg`-h' 324f5effb2eSmrg Print a summary of all of the options to `configure', and exit. 325f5effb2eSmrg 326f5effb2eSmrg`--help=short' 327f5effb2eSmrg`--help=recursive' 328f5effb2eSmrg Print a summary of the options unique to this package's 329f5effb2eSmrg `configure', and exit. The `short' variant lists options used 330f5effb2eSmrg only in the top level, while the `recursive' variant lists options 331f5effb2eSmrg also present in any nested packages. 332f5effb2eSmrg 333f5effb2eSmrg`--version' 334f5effb2eSmrg`-V' 335f5effb2eSmrg Print the version of Autoconf used to generate the `configure' 336f5effb2eSmrg script, and exit. 337f5effb2eSmrg 338f5effb2eSmrg`--cache-file=FILE' 339f5effb2eSmrg Enable the cache: use and save the results of the tests in FILE, 340f5effb2eSmrg traditionally `config.cache'. FILE defaults to `/dev/null' to 341f5effb2eSmrg disable caching. 342f5effb2eSmrg 343f5effb2eSmrg`--config-cache' 344f5effb2eSmrg`-C' 345f5effb2eSmrg Alias for `--cache-file=config.cache'. 346f5effb2eSmrg 347f5effb2eSmrg`--quiet' 348f5effb2eSmrg`--silent' 349f5effb2eSmrg`-q' 350f5effb2eSmrg Do not print messages saying which checks are being made. To 351f5effb2eSmrg suppress all normal output, redirect it to `/dev/null' (any error 352f5effb2eSmrg messages will still be shown). 353f5effb2eSmrg 354f5effb2eSmrg`--srcdir=DIR' 355f5effb2eSmrg Look for the package's source code in directory DIR. Usually 356f5effb2eSmrg `configure' can determine that directory automatically. 357f5effb2eSmrg 358f5effb2eSmrg`--prefix=DIR' 359585aa3f7Smrg Use DIR as the installation prefix. *note Installation Names:: 360f5effb2eSmrg for more details, including other options available for fine-tuning 361f5effb2eSmrg the installation locations. 362f5effb2eSmrg 363f5effb2eSmrg`--no-create' 364f5effb2eSmrg`-n' 365f5effb2eSmrg Run the configure checks, but stop before creating any output 366f5effb2eSmrg files. 367f5effb2eSmrg 368f5effb2eSmrg`configure' also accepts some other, not widely useful, options. Run 369f5effb2eSmrg`configure --help' for more details. 370f5effb2eSmrg 371