1ALIEN ARENA NOTE: 2This is a GNU Document with technical details related to GNU Autotools. 3For Alien Arena installation information, see the README first. 4 5Installation Instructions 6************************* 7 8Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 92006, 2007, 2008, 2009 Free Software Foundation, Inc. 10 11 Copying and distribution of this file, with or without modification, 12are permitted in any medium without royalty provided the copyright 13notice and this notice are preserved. This file is offered as-is, 14without warranty of any kind. 15 16Basic Installation 17================== 18 19 Briefly, the shell commands `./configure; make; make install' should 20configure, build, and install this package. The following 21more-detailed instructions are generic; see the `README' file for 22instructions specific to this package. Some packages provide this 23`INSTALL' file but do not implement all of the features documented 24below. The lack of an optional feature in a given package is not 25necessarily a bug. More recommendations for GNU packages can be found 26in *note Makefile Conventions: (standards)Makefile Conventions. 27 28 The `configure' shell script attempts to guess correct values for 29various system-dependent variables used during compilation. It uses 30those values to create a `Makefile' in each directory of the package. 31It may also create one or more `.h' files containing system-dependent 32definitions. Finally, it creates a shell script `config.status' that 33you can run in the future to recreate the current configuration, and a 34file `config.log' containing compiler output (useful mainly for 35debugging `configure'). 36 37 It can also use an optional file (typically called `config.cache' 38and enabled with `--cache-file=config.cache' or simply `-C') that saves 39the results of its tests to speed up reconfiguring. Caching is 40disabled by default to prevent problems with accidental use of stale 41cache files. 42 43 If you need to do unusual things to compile the package, please try 44to figure out how `configure' could check whether to do them, and mail 45diffs or instructions to the address given in the `README' so they can 46be considered for the next release. If you are using the cache, and at 47some point `config.cache' contains results you don't want to keep, you 48may remove or edit it. 49 50 The file `configure.ac' (or `configure.in') is used to create 51`configure' by a program called `autoconf'. You need `configure.ac' if 52you want to change it or regenerate `configure' using a newer version 53of `autoconf'. 54 55 The simplest way to compile this package is: 56 57 1. `cd' to the directory containing the package's source code and type 58 `./configure' to configure the package for your system. 59 60 Running `configure' might take a while. While running, it prints 61 some messages telling which features it is checking for. 62 63 2. Type `make' to compile the package. 64 65 3. Optionally, type `make check' to run any self-tests that come with 66 the package, generally using the just-built uninstalled binaries. 67 68 4. Type `make install' to install the programs and any data files and 69 documentation. When installing into a prefix owned by root, it is 70 recommended that the package be configured and built as a regular 71 user, and only the `make install' phase executed with root 72 privileges. 73 74 5. Optionally, type `make installcheck' to repeat any self-tests, but 75 this time using the binaries in their final installed location. 76 This target does not install anything. Running this target as a 77 regular user, particularly if the prior `make install' required 78 root privileges, verifies that the installation completed 79 correctly. 80 81 6. You can remove the program binaries and object files from the 82 source code directory by typing `make clean'. To also remove the 83 files that `configure' created (so you can compile the package for 84 a different kind of computer), type `make distclean'. There is 85 also a `make maintainer-clean' target, but that is intended mainly 86 for the package's developers. If you use it, you may have to get 87 all sorts of other programs in order to regenerate files that came 88 with the distribution. 89 90 7. Often, you can also type `make uninstall' to remove the installed 91 files again. In practice, not all packages have tested that 92 uninstallation works correctly, even though it is required by the 93 GNU Coding Standards. 94 95 8. Some packages, particularly those that use Automake, provide `make 96 distcheck', which can by used by developers to test that all other 97 targets like `make install' and `make uninstall' work correctly. 98 This target is generally not run by end users. 99 100Compilers and Options 101===================== 102 103 Some systems require unusual options for compilation or linking that 104the `configure' script does not know about. Run `./configure --help' 105for details on some of the pertinent environment variables. 106 107 You can give `configure' initial values for configuration parameters 108by setting variables in the command line or in the environment. Here 109is an example: 110 111 ./configure CC=c99 CFLAGS=-g LIBS=-lposix 112 113 *Note Defining Variables::, for more details. 114 115Compiling For Multiple Architectures 116==================================== 117 118 You can compile the package for more than one kind of computer at the 119same time, by placing the object files for each architecture in their 120own directory. To do this, you can use GNU `make'. `cd' to the 121directory where you want the object files and executables to go and run 122the `configure' script. `configure' automatically checks for the 123source code in the directory that `configure' is in and in `..'. This 124is known as a "VPATH" build. 125 126 With a non-GNU `make', it is safer to compile the package for one 127architecture at a time in the source code directory. After you have 128installed the package for one architecture, use `make distclean' before 129reconfiguring for another architecture. 130 131 On MacOS X 10.5 and later systems, you can create libraries and 132executables that work on multiple system types--known as "fat" or 133"universal" binaries--by specifying multiple `-arch' options to the 134compiler but only a single `-arch' option to the preprocessor. Like 135this: 136 137 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 138 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ 139 CPP="gcc -E" CXXCPP="g++ -E" 140 141 This is not guaranteed to produce working output in all cases, you 142may have to build one architecture at a time and combine the results 143using the `lipo' tool if you have problems. 144 145Installation Names 146================== 147 148 By default, `make install' installs the package's commands under 149`/usr/local/bin', include files under `/usr/local/include', etc. You 150can specify an installation prefix other than `/usr/local' by giving 151`configure' the option `--prefix=PREFIX', where PREFIX must be an 152absolute file name. 153 154 You can specify separate installation prefixes for 155architecture-specific files and architecture-independent files. If you 156pass the option `--exec-prefix=PREFIX' to `configure', the package uses 157PREFIX as the prefix for installing programs and libraries. 158Documentation and other data files still use the regular prefix. 159 160 In addition, if you use an unusual directory layout you can give 161options like `--bindir=DIR' to specify different values for particular 162kinds of files. Run `configure --help' for a list of the directories 163you can set and what kinds of files go in them. In general, the 164default for these options is expressed in terms of `${prefix}', so that 165specifying just `--prefix' will affect all of the other directory 166specifications that were not explicitly provided. 167 168 The most portable way to affect installation locations is to pass the 169correct locations to `configure'; however, many packages provide one or 170both of the following shortcuts of passing variable assignments to the 171`make install' command line to change installation locations without 172having to reconfigure or recompile. 173 174 The first method involves providing an override variable for each 175affected directory. For example, `make install 176prefix=/alternate/directory' will choose an alternate location for all 177directory configuration variables that were expressed in terms of 178`${prefix}'. Any directories that were specified during `configure', 179but not in terms of `${prefix}', must each be overridden at install 180time for the entire installation to be relocated. The approach of 181makefile variable overrides for each directory variable is required by 182the GNU Coding Standards, and ideally causes no recompilation. 183However, some platforms have known limitations with the semantics of 184shared libraries that end up requiring recompilation when using this 185method, particularly noticeable in packages that use GNU Libtool. 186 187 The second method involves providing the `DESTDIR' variable. For 188example, `make install DESTDIR=/alternate/directory' will prepend 189`/alternate/directory' before all installation names. The approach of 190`DESTDIR' overrides is not required by the GNU Coding Standards, and 191does not work on platforms that have drive letters. On the other hand, 192it does better at avoiding recompilation issues, and works well even 193when some directory options were not specified in terms of `${prefix}' 194at `configure' time. 195 196Optional Features 197================= 198 199 If the package supports it, you can cause programs to be installed 200with an extra prefix or suffix on their names by giving `configure' the 201option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 202 203 Some packages pay attention to `--enable-FEATURE' options to 204`configure', where FEATURE indicates an optional part of the package. 205They may also pay attention to `--with-PACKAGE' options, where PACKAGE 206is something like `gnu-as' or `x' (for the X Window System). The 207`README' should mention any `--enable-' and `--with-' options that the 208package recognizes. 209 210 For packages that use the X Window System, `configure' can usually 211find the X include and library files automatically, but if it doesn't, 212you can use the `configure' options `--x-includes=DIR' and 213`--x-libraries=DIR' to specify their locations. 214 215 Some packages offer the ability to configure how verbose the 216execution of `make' will be. For these packages, running `./configure 217--enable-silent-rules' sets the default to minimal output, which can be 218overridden with `make V=1'; while running `./configure 219--disable-silent-rules' sets the default to verbose, which can be 220overridden with `make V=0'. 221 222Particular systems 223================== 224 225 On HP-UX, the default C compiler is not ANSI C compatible. If GNU 226CC is not installed, it is recommended to use the following options in 227order to use an ANSI C compiler: 228 229 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" 230 231and if that doesn't work, install pre-built binaries of GCC for HP-UX. 232 233 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 234parse its `<wchar.h>' header file. The option `-nodtk' can be used as 235a workaround. If GNU CC is not installed, it is therefore recommended 236to try 237 238 ./configure CC="cc" 239 240and if that doesn't work, try 241 242 ./configure CC="cc -nodtk" 243 244 On Solaris, don't put `/usr/ucb' early in your `PATH'. This 245directory contains several dysfunctional programs; working variants of 246these programs are available in `/usr/bin'. So, if you need `/usr/ucb' 247in your `PATH', put it _after_ `/usr/bin'. 248 249 On Haiku, software installed for all users goes in `/boot/common', 250not `/usr/local'. It is recommended to use the following options: 251 252 ./configure --prefix=/boot/common 253 254Specifying the System Type 255========================== 256 257 There may be some features `configure' cannot figure out 258automatically, but needs to determine by the type of machine the package 259will run on. Usually, assuming the package is built to be run on the 260_same_ architectures, `configure' can figure that out, but if it prints 261a message saying it cannot guess the machine type, give it the 262`--build=TYPE' option. TYPE can either be a short name for the system 263type, such as `sun4', or a canonical name which has the form: 264 265 CPU-COMPANY-SYSTEM 266 267where SYSTEM can have one of these forms: 268 269 OS 270 KERNEL-OS 271 272 See the file `config.sub' for the possible values of each field. If 273`config.sub' isn't included in this package, then this package doesn't 274need to know the machine type. 275 276 If you are _building_ compiler tools for cross-compiling, you should 277use the option `--target=TYPE' to select the type of system they will 278produce code for. 279 280 If you want to _use_ a cross compiler, that generates code for a 281platform different from the build platform, you should specify the 282"host" platform (i.e., that on which the generated programs will 283eventually be run) with `--host=TYPE'. 284 285Sharing Defaults 286================ 287 288 If you want to set default values for `configure' scripts to share, 289you can create a site shell script called `config.site' that gives 290default values for variables like `CC', `cache_file', and `prefix'. 291`configure' looks for `PREFIX/share/config.site' if it exists, then 292`PREFIX/etc/config.site' if it exists. Or, you can set the 293`CONFIG_SITE' environment variable to the location of the site script. 294A warning: not all `configure' scripts look for a site script. 295 296Defining Variables 297================== 298 299 Variables not defined in a site shell script can be set in the 300environment passed to `configure'. However, some packages may run 301configure again during the build, and the customized values of these 302variables may be lost. In order to avoid this problem, you should set 303them in the `configure' command line, using `VAR=value'. For example: 304 305 ./configure CC=/usr/local2/bin/gcc 306 307causes the specified `gcc' to be used as the C compiler (unless it is 308overridden in the site shell script). 309 310Unfortunately, this technique does not work for `CONFIG_SHELL' due to 311an Autoconf bug. Until the bug is fixed you can use this workaround: 312 313 CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 314 315`configure' Invocation 316====================== 317 318 `configure' recognizes the following options to control how it 319operates. 320 321`--help' 322`-h' 323 Print a summary of all of the options to `configure', and exit. 324 325`--help=short' 326`--help=recursive' 327 Print a summary of the options unique to this package's 328 `configure', and exit. The `short' variant lists options used 329 only in the top level, while the `recursive' variant lists options 330 also present in any nested packages. 331 332`--version' 333`-V' 334 Print the version of Autoconf used to generate the `configure' 335 script, and exit. 336 337`--cache-file=FILE' 338 Enable the cache: use and save the results of the tests in FILE, 339 traditionally `config.cache'. FILE defaults to `/dev/null' to 340 disable caching. 341 342`--config-cache' 343`-C' 344 Alias for `--cache-file=config.cache'. 345 346`--quiet' 347`--silent' 348`-q' 349 Do not print messages saying which checks are being made. To 350 suppress all normal output, redirect it to `/dev/null' (any error 351 messages will still be shown). 352 353`--srcdir=DIR' 354 Look for the package's source code in directory DIR. Usually 355 `configure' can determine that directory automatically. 356 357`--prefix=DIR' 358 Use DIR as the installation prefix. *note Installation Names:: 359 for more details, including other options available for fine-tuning 360 the installation locations. 361 362`--no-create' 363`-n' 364 Run the configure checks, but stop before creating any output 365 files. 366 367`configure' also accepts some other, not widely useful, options. Run 368`configure --help' for more details. 369 370