Blame INSTALL

Packit f00812
Installation Instructions
Packit f00812
*************************
Packit f00812
Packit f00812
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Packit f00812
Inc.
Packit f00812
Packit f00812
   Copying and distribution of this file, with or without modification,
Packit f00812
are permitted in any medium without royalty provided the copyright
Packit f00812
notice and this notice are preserved.  This file is offered as-is,
Packit f00812
without warranty of any kind.
Packit f00812
Packit f00812
Basic Installation
Packit f00812
==================
Packit f00812
Packit f00812
   Briefly, the shell command `./configure && make && make install'
Packit f00812
should configure, build, and install this package.  The following
Packit f00812
more-detailed instructions are generic; see the `README' file for
Packit f00812
instructions specific to this package.  Some packages provide this
Packit f00812
`INSTALL' file but do not implement all of the features documented
Packit f00812
below.  The lack of an optional feature in a given package is not
Packit f00812
necessarily a bug.  More recommendations for GNU packages can be found
Packit f00812
in *note Makefile Conventions: (standards)Makefile Conventions.
Packit f00812
Packit f00812
   The `configure' shell script attempts to guess correct values for
Packit f00812
various system-dependent variables used during compilation.  It uses
Packit f00812
those values to create a `Makefile' in each directory of the package.
Packit f00812
It may also create one or more `.h' files containing system-dependent
Packit f00812
definitions.  Finally, it creates a shell script `config.status' that
Packit f00812
you can run in the future to recreate the current configuration, and a
Packit f00812
file `config.log' containing compiler output (useful mainly for
Packit f00812
debugging `configure').
Packit f00812
Packit f00812
   It can also use an optional file (typically called `config.cache'
Packit f00812
and enabled with `--cache-file=config.cache' or simply `-C') that saves
Packit f00812
the results of its tests to speed up reconfiguring.  Caching is
Packit f00812
disabled by default to prevent problems with accidental use of stale
Packit f00812
cache files.
Packit f00812
Packit f00812
   If you need to do unusual things to compile the package, please try
Packit f00812
to figure out how `configure' could check whether to do them, and mail
Packit f00812
diffs or instructions to the address given in the `README' so they can
Packit f00812
be considered for the next release.  If you are using the cache, and at
Packit f00812
some point `config.cache' contains results you don't want to keep, you
Packit f00812
may remove or edit it.
Packit f00812
Packit f00812
   The file `configure.ac' (or `configure.in') is used to create
Packit f00812
`configure' by a program called `autoconf'.  You need `configure.ac' if
Packit f00812
you want to change it or regenerate `configure' using a newer version
Packit f00812
of `autoconf'.
Packit f00812
Packit f00812
   The simplest way to compile this package is:
Packit f00812
Packit f00812
  1. `cd' to the directory containing the package's source code and type
Packit f00812
     `./configure' to configure the package for your system.
Packit f00812
Packit f00812
     Running `configure' might take a while.  While running, it prints
Packit f00812
     some messages telling which features it is checking for.
Packit f00812
Packit f00812
  2. Type `make' to compile the package.
Packit f00812
Packit f00812
  3. Optionally, type `make check' to run any self-tests that come with
Packit f00812
     the package, generally using the just-built uninstalled binaries.
Packit f00812
Packit f00812
  4. Type `make install' to install the programs and any data files and
Packit f00812
     documentation.  When installing into a prefix owned by root, it is
Packit f00812
     recommended that the package be configured and built as a regular
Packit f00812
     user, and only the `make install' phase executed with root
Packit f00812
     privileges.
Packit f00812
Packit f00812
  5. Optionally, type `make installcheck' to repeat any self-tests, but
Packit f00812
     this time using the binaries in their final installed location.
Packit f00812
     This target does not install anything.  Running this target as a
Packit f00812
     regular user, particularly if the prior `make install' required
Packit f00812
     root privileges, verifies that the installation completed
Packit f00812
     correctly.
Packit f00812
Packit f00812
  6. You can remove the program binaries and object files from the
Packit f00812
     source code directory by typing `make clean'.  To also remove the
Packit f00812
     files that `configure' created (so you can compile the package for
Packit f00812
     a different kind of computer), type `make distclean'.  There is
Packit f00812
     also a `make maintainer-clean' target, but that is intended mainly
Packit f00812
     for the package's developers.  If you use it, you may have to get
Packit f00812
     all sorts of other programs in order to regenerate files that came
Packit f00812
     with the distribution.
Packit f00812
Packit f00812
  7. Often, you can also type `make uninstall' to remove the installed
Packit f00812
     files again.  In practice, not all packages have tested that
Packit f00812
     uninstallation works correctly, even though it is required by the
Packit f00812
     GNU Coding Standards.
Packit f00812
Packit f00812
  8. Some packages, particularly those that use Automake, provide `make
Packit f00812
     distcheck', which can by used by developers to test that all other
Packit f00812
     targets like `make install' and `make uninstall' work correctly.
Packit f00812
     This target is generally not run by end users.
Packit f00812
Packit f00812
Compilers and Options
Packit f00812
=====================
Packit f00812
Packit f00812
   Some systems require unusual options for compilation or linking that
Packit f00812
the `configure' script does not know about.  Run `./configure --help'
Packit f00812
for details on some of the pertinent environment variables.
Packit f00812
Packit f00812
   You can give `configure' initial values for configuration parameters
Packit f00812
by setting variables in the command line or in the environment.  Here
Packit f00812
is an example:
Packit f00812
Packit f00812
     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
Packit f00812
Packit f00812
   *Note Defining Variables::, for more details.
Packit f00812
Packit f00812
Compiling For Multiple Architectures
Packit f00812
====================================
Packit f00812
Packit f00812
   You can compile the package for more than one kind of computer at the
Packit f00812
same time, by placing the object files for each architecture in their
Packit f00812
own directory.  To do this, you can use GNU `make'.  `cd' to the
Packit f00812
directory where you want the object files and executables to go and run
Packit f00812
the `configure' script.  `configure' automatically checks for the
Packit f00812
source code in the directory that `configure' is in and in `..'.  This
Packit f00812
is known as a "VPATH" build.
Packit f00812
Packit f00812
   With a non-GNU `make', it is safer to compile the package for one
Packit f00812
architecture at a time in the source code directory.  After you have
Packit f00812
installed the package for one architecture, use `make distclean' before
Packit f00812
reconfiguring for another architecture.
Packit f00812
Packit f00812
   On MacOS X 10.5 and later systems, you can create libraries and
Packit f00812
executables that work on multiple system types--known as "fat" or
Packit f00812
"universal" binaries--by specifying multiple `-arch' options to the
Packit f00812
compiler but only a single `-arch' option to the preprocessor.  Like
Packit f00812
this:
Packit f00812
Packit f00812
     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
Packit f00812
                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
Packit f00812
                 CPP="gcc -E" CXXCPP="g++ -E"
Packit f00812
Packit f00812
   This is not guaranteed to produce working output in all cases, you
Packit f00812
may have to build one architecture at a time and combine the results
Packit f00812
using the `lipo' tool if you have problems.
Packit f00812
Packit f00812
Installation Names
Packit f00812
==================
Packit f00812
Packit f00812
   By default, `make install' installs the package's commands under
Packit f00812
`/usr/local/bin', include files under `/usr/local/include', etc.  You
Packit f00812
can specify an installation prefix other than `/usr/local' by giving
Packit f00812
`configure' the option `--prefix=PREFIX', where PREFIX must be an
Packit f00812
absolute file name.
Packit f00812
Packit f00812
   You can specify separate installation prefixes for
Packit f00812
architecture-specific files and architecture-independent files.  If you
Packit f00812
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
Packit f00812
PREFIX as the prefix for installing programs and libraries.
Packit f00812
Documentation and other data files still use the regular prefix.
Packit f00812
Packit f00812
   In addition, if you use an unusual directory layout you can give
Packit f00812
options like `--bindir=DIR' to specify different values for particular
Packit f00812
kinds of files.  Run `configure --help' for a list of the directories
Packit f00812
you can set and what kinds of files go in them.  In general, the
Packit f00812
default for these options is expressed in terms of `${prefix}', so that
Packit f00812
specifying just `--prefix' will affect all of the other directory
Packit f00812
specifications that were not explicitly provided.
Packit f00812
Packit f00812
   The most portable way to affect installation locations is to pass the
Packit f00812
correct locations to `configure'; however, many packages provide one or
Packit f00812
both of the following shortcuts of passing variable assignments to the
Packit f00812
`make install' command line to change installation locations without
Packit f00812
having to reconfigure or recompile.
Packit f00812
Packit f00812
   The first method involves providing an override variable for each
Packit f00812
affected directory.  For example, `make install
Packit f00812
prefix=/alternate/directory' will choose an alternate location for all
Packit f00812
directory configuration variables that were expressed in terms of
Packit f00812
`${prefix}'.  Any directories that were specified during `configure',
Packit f00812
but not in terms of `${prefix}', must each be overridden at install
Packit f00812
time for the entire installation to be relocated.  The approach of
Packit f00812
makefile variable overrides for each directory variable is required by
Packit f00812
the GNU Coding Standards, and ideally causes no recompilation.
Packit f00812
However, some platforms have known limitations with the semantics of
Packit f00812
shared libraries that end up requiring recompilation when using this
Packit f00812
method, particularly noticeable in packages that use GNU Libtool.
Packit f00812
Packit f00812
   The second method involves providing the `DESTDIR' variable.  For
Packit f00812
example, `make install DESTDIR=/alternate/directory' will prepend
Packit f00812
`/alternate/directory' before all installation names.  The approach of
Packit f00812
`DESTDIR' overrides is not required by the GNU Coding Standards, and
Packit f00812
does not work on platforms that have drive letters.  On the other hand,
Packit f00812
it does better at avoiding recompilation issues, and works well even
Packit f00812
when some directory options were not specified in terms of `${prefix}'
Packit f00812
at `configure' time.
Packit f00812
Packit f00812
Optional Features
Packit f00812
=================
Packit f00812
Packit f00812
   If the package supports it, you can cause programs to be installed
Packit f00812
with an extra prefix or suffix on their names by giving `configure' the
Packit f00812
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Packit f00812
Packit f00812
   Some packages pay attention to `--enable-FEATURE' options to
Packit f00812
`configure', where FEATURE indicates an optional part of the package.
Packit f00812
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
Packit f00812
is something like `gnu-as' or `x' (for the X Window System).  The
Packit f00812
`README' should mention any `--enable-' and `--with-' options that the
Packit f00812
package recognizes.
Packit f00812
Packit f00812
   For packages that use the X Window System, `configure' can usually
Packit f00812
find the X include and library files automatically, but if it doesn't,
Packit f00812
you can use the `configure' options `--x-includes=DIR' and
Packit f00812
`--x-libraries=DIR' to specify their locations.
Packit f00812
Packit f00812
   Some packages offer the ability to configure how verbose the
Packit f00812
execution of `make' will be.  For these packages, running `./configure
Packit f00812
--enable-silent-rules' sets the default to minimal output, which can be
Packit f00812
overridden with `make V=1'; while running `./configure
Packit f00812
--disable-silent-rules' sets the default to verbose, which can be
Packit f00812
overridden with `make V=0'.
Packit f00812
Packit f00812
Particular systems
Packit f00812
==================
Packit f00812
Packit f00812
   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
Packit f00812
CC is not installed, it is recommended to use the following options in
Packit f00812
order to use an ANSI C compiler:
Packit f00812
Packit f00812
     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
Packit f00812
Packit f00812
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
Packit f00812
Packit f00812
   HP-UX `make' updates targets which have the same time stamps as
Packit f00812
their prerequisites, which makes it generally unusable when shipped
Packit f00812
generated files such as `configure' are involved.  Use GNU `make'
Packit f00812
instead.
Packit f00812
Packit f00812
   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
Packit f00812
parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
Packit f00812
a workaround.  If GNU CC is not installed, it is therefore recommended
Packit f00812
to try
Packit f00812
Packit f00812
     ./configure CC="cc"
Packit f00812
Packit f00812
and if that doesn't work, try
Packit f00812
Packit f00812
     ./configure CC="cc -nodtk"
Packit f00812
Packit f00812
   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
Packit f00812
directory contains several dysfunctional programs; working variants of
Packit f00812
these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
Packit f00812
in your `PATH', put it _after_ `/usr/bin'.
Packit f00812
Packit f00812
   On Haiku, software installed for all users goes in `/boot/common',
Packit f00812
not `/usr/local'.  It is recommended to use the following options:
Packit f00812
Packit f00812
     ./configure --prefix=/boot/common
Packit f00812
Packit f00812
Specifying the System Type
Packit f00812
==========================
Packit f00812
Packit f00812
   There may be some features `configure' cannot figure out
Packit f00812
automatically, but needs to determine by the type of machine the package
Packit f00812
will run on.  Usually, assuming the package is built to be run on the
Packit f00812
_same_ architectures, `configure' can figure that out, but if it prints
Packit f00812
a message saying it cannot guess the machine type, give it the
Packit f00812
`--build=TYPE' option.  TYPE can either be a short name for the system
Packit f00812
type, such as `sun4', or a canonical name which has the form:
Packit f00812
Packit f00812
     CPU-COMPANY-SYSTEM
Packit f00812
Packit f00812
where SYSTEM can have one of these forms:
Packit f00812
Packit f00812
     OS
Packit f00812
     KERNEL-OS
Packit f00812
Packit f00812
   See the file `config.sub' for the possible values of each field.  If
Packit f00812
`config.sub' isn't included in this package, then this package doesn't
Packit f00812
need to know the machine type.
Packit f00812
Packit f00812
   If you are _building_ compiler tools for cross-compiling, you should
Packit f00812
use the option `--target=TYPE' to select the type of system they will
Packit f00812
produce code for.
Packit f00812
Packit f00812
   If you want to _use_ a cross compiler, that generates code for a
Packit f00812
platform different from the build platform, you should specify the
Packit f00812
"host" platform (i.e., that on which the generated programs will
Packit f00812
eventually be run) with `--host=TYPE'.
Packit f00812
Packit f00812
Sharing Defaults
Packit f00812
================
Packit f00812
Packit f00812
   If you want to set default values for `configure' scripts to share,
Packit f00812
you can create a site shell script called `config.site' that gives
Packit f00812
default values for variables like `CC', `cache_file', and `prefix'.
Packit f00812
`configure' looks for `PREFIX/share/config.site' if it exists, then
Packit f00812
`PREFIX/etc/config.site' if it exists.  Or, you can set the
Packit f00812
`CONFIG_SITE' environment variable to the location of the site script.
Packit f00812
A warning: not all `configure' scripts look for a site script.
Packit f00812
Packit f00812
Defining Variables
Packit f00812
==================
Packit f00812
Packit f00812
   Variables not defined in a site shell script can be set in the
Packit f00812
environment passed to `configure'.  However, some packages may run
Packit f00812
configure again during the build, and the customized values of these
Packit f00812
variables may be lost.  In order to avoid this problem, you should set
Packit f00812
them in the `configure' command line, using `VAR=value'.  For example:
Packit f00812
Packit f00812
     ./configure CC=/usr/local2/bin/gcc
Packit f00812
Packit f00812
causes the specified `gcc' to be used as the C compiler (unless it is
Packit f00812
overridden in the site shell script).
Packit f00812
Packit f00812
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
Packit f00812
an Autoconf limitation.  Until the limitation is lifted, you can use
Packit f00812
this workaround:
Packit f00812
Packit f00812
     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
Packit f00812
Packit f00812
`configure' Invocation
Packit f00812
======================
Packit f00812
Packit f00812
   `configure' recognizes the following options to control how it
Packit f00812
operates.
Packit f00812
Packit f00812
`--help'
Packit f00812
`-h'
Packit f00812
     Print a summary of all of the options to `configure', and exit.
Packit f00812
Packit f00812
`--help=short'
Packit f00812
`--help=recursive'
Packit f00812
     Print a summary of the options unique to this package's
Packit f00812
     `configure', and exit.  The `short' variant lists options used
Packit f00812
     only in the top level, while the `recursive' variant lists options
Packit f00812
     also present in any nested packages.
Packit f00812
Packit f00812
`--version'
Packit f00812
`-V'
Packit f00812
     Print the version of Autoconf used to generate the `configure'
Packit f00812
     script, and exit.
Packit f00812
Packit f00812
`--cache-file=FILE'
Packit f00812
     Enable the cache: use and save the results of the tests in FILE,
Packit f00812
     traditionally `config.cache'.  FILE defaults to `/dev/null' to
Packit f00812
     disable caching.
Packit f00812
Packit f00812
`--config-cache'
Packit f00812
`-C'
Packit f00812
     Alias for `--cache-file=config.cache'.
Packit f00812
Packit f00812
`--quiet'
Packit f00812
`--silent'
Packit f00812
`-q'
Packit f00812
     Do not print messages saying which checks are being made.  To
Packit f00812
     suppress all normal output, redirect it to `/dev/null' (any error
Packit f00812
     messages will still be shown).
Packit f00812
Packit f00812
`--srcdir=DIR'
Packit f00812
     Look for the package's source code in directory DIR.  Usually
Packit f00812
     `configure' can determine that directory automatically.
Packit f00812
Packit f00812
`--prefix=DIR'
Packit f00812
     Use DIR as the installation prefix.  *note Installation Names::
Packit f00812
     for more details, including other options available for fine-tuning
Packit f00812
     the installation locations.
Packit f00812
Packit f00812
`--no-create'
Packit f00812
`-n'
Packit f00812
     Run the configure checks, but stop before creating any output
Packit f00812
     files.
Packit f00812
Packit f00812
`configure' also accepts some other, not widely useful, options.  Run
Packit f00812
`configure --help' for more details.