Blame install.texi

Packit 1ca270
@c This file is included by autoconf.texi and is used to produce
Packit 1ca270
@c the INSTALL file.
Packit 1ca270
Packit 1ca270
@node Basic Installation
Packit 1ca270
@section Basic Installation
Packit 1ca270
Packit 1ca270
These are generic installation instructions.
Packit 1ca270
Packit 1ca270
The @code{configure} shell script attempts to guess correct values for
Packit 1ca270
various system-dependent variables used during compilation.  It uses
Packit 1ca270
those values to create a @file{Makefile} in each directory of the
Packit 1ca270
package.  It may also create one or more @file{.h} files containing
Packit 1ca270
system-dependent definitions.  Finally, it creates a shell script
Packit 1ca270
@file{config.status} that you can run in the future to recreate the
Packit 1ca270
current configuration, a file @file{config.cache} that saves the results
Packit 1ca270
of its tests to speed up reconfiguring, and a file @file{config.log}
Packit 1ca270
containing compiler output (useful mainly for debugging
Packit 1ca270
@code{configure}).
Packit 1ca270
Packit 1ca270
If you need to do unusual things to compile the package, please try to
Packit 1ca270
figure out how @code{configure} could check whether to do them, and mail
Packit 1ca270
diffs or instructions to the address given in the @file{README} so they
Packit 1ca270
can be considered for the next release.  If at some point
Packit 1ca270
@file{config.cache} contains results you don't want to keep, you may
Packit 1ca270
remove or edit it.
Packit 1ca270
Packit 1ca270
The file @file{configure.in} is used to create @file{configure} by a
Packit 1ca270
program called @code{autoconf}.  You only need @file{configure.in} if
Packit 1ca270
you want to change it or regenerate @file{configure} using a newer
Packit 1ca270
version of @code{autoconf}.
Packit 1ca270
Packit 1ca270
@noindent
Packit 1ca270
The simplest way to compile this package is:
Packit 1ca270
Packit 1ca270
@enumerate
Packit 1ca270
@item
Packit 1ca270
@code{cd} to the directory containing the package's source code and type
Packit 1ca270
@samp{./configure} to configure the package for your system.  If you're
Packit 1ca270
using @code{csh} on an old version of System V, you might need to type
Packit 1ca270
@samp{sh ./configure} instead to prevent @code{csh} from trying to
Packit 1ca270
execute @code{configure} itself.
Packit 1ca270
Packit 1ca270
Running @code{configure} takes awhile.  While running, it prints some
Packit 1ca270
messages telling which features it is checking for.
Packit 1ca270
Packit 1ca270
@item
Packit 1ca270
Type @samp{make} to compile the package.
Packit 1ca270
Packit 1ca270
@item
Packit 1ca270
Optionally, type @samp{make check} to run any self-tests that come with
Packit 1ca270
the package.
Packit 1ca270
Packit 1ca270
@item
Packit 1ca270
Type @samp{make install} to install the programs and any data files and
Packit 1ca270
documentation.
Packit 1ca270
Packit 1ca270
@item
Packit 1ca270
You can remove the program binaries and object files from the source code
Packit 1ca270
directory by typing @samp{make clean}.  To also remove the files that
Packit 1ca270
@code{configure} created (so you can compile the package for a different
Packit 1ca270
kind of computer), type @samp{make distclean}.  There is also a
Packit 1ca270
@samp{make maintainer-clean} target, but that is intended mainly for the
Packit 1ca270
package's developers.  If you use it, you may have to get all sorts of
Packit 1ca270
other programs in order to regenerate files that came with the distribution.
Packit 1ca270
@end enumerate
Packit 1ca270
Packit 1ca270
@node Compilers and Options
Packit 1ca270
@section Compilers and Options
Packit 1ca270
Packit 1ca270
Some systems require unusual options for compilation or linking that
Packit 1ca270
the @code{configure} script does not know about.  You can give
Packit 1ca270
@code{configure} initial values for variables by setting them in the
Packit 1ca270
environment.  Using a Bourne-compatible shell, you can do that on the
Packit 1ca270
command line like this:
Packit 1ca270
@example
Packit 1ca270
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Packit 1ca270
@end example
Packit 1ca270
Packit 1ca270
@noindent
Packit 1ca270
Or on systems that have the @code{env} program, you can do it like this:
Packit 1ca270
@example
Packit 1ca270
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Packit 1ca270
@end example
Packit 1ca270
Packit 1ca270
@node Multiple Architectures
Packit 1ca270
@section Compiling For Multiple Architectures
Packit 1ca270
Packit 1ca270
You can compile the package for more than one kind of computer at the
Packit 1ca270
same time, by placing the object files for each architecture in their
Packit 1ca270
own directory.  To do this, you must use a version of @code{make} that
Packit 1ca270
supports the @code{VPATH} variable, such as GNU @code{make}.  @code{cd}
Packit 1ca270
to the directory where you want the object files and executables to go
Packit 1ca270
and run the @code{configure} script.  @code{configure} automatically
Packit 1ca270
checks for the source code in the directory that @code{configure} is in
Packit 1ca270
and in @file{..}.
Packit 1ca270
Packit 1ca270
If you have to use a @code{make} that does not supports the @code{VPATH}
Packit 1ca270
variable, you have to compile the package for one architecture at a time
Packit 1ca270
in the source code directory.  After you have installed the package for
Packit 1ca270
one architecture, use @samp{make distclean} before reconfiguring for
Packit 1ca270
another architecture.
Packit 1ca270
Packit 1ca270
@node Installation Names
Packit 1ca270
@section Installation Names
Packit 1ca270
Packit 1ca270
By default, @samp{make install} will install the package's files in
Packit 1ca270
@file{/usr/local/bin}, @file{/usr/local/man}, etc.  You can specify an
Packit 1ca270
installation prefix other than @file{/usr/local} by giving
Packit 1ca270
@code{configure} the option @samp{--prefix=@var{path}}.
Packit 1ca270
Packit 1ca270
You can specify separate installation prefixes for architecture-specific
Packit 1ca270
files and architecture-independent files.  If you give @code{configure}
Packit 1ca270
the option @samp{--exec-prefix=@var{path}}, the package will use
Packit 1ca270
@var{path} as the prefix for installing programs and libraries.
Packit 1ca270
Documentation and other data files will still use the regular prefix.
Packit 1ca270
Packit 1ca270
In addition, if you use an unusual directory layout you can give options
Packit 1ca270
like @samp{--bindir=@var{path}} to specify different values for
Packit 1ca270
particular kinds of files.  Run @samp{configure --help} for a list of
Packit 1ca270
the directories you can set and what kinds of files go in them.
Packit 1ca270
Packit 1ca270
If the package supports it, you can cause programs to be installed with
Packit 1ca270
an extra prefix or suffix on their names by giving @code{configure} the
Packit 1ca270
option @samp{--program-prefix=@var{PREFIX}} or
Packit 1ca270
@samp{--program-suffix=@var{SUFFIX}}.
Packit 1ca270
Packit 1ca270
@node Optional Features
Packit 1ca270
@section Optional Features
Packit 1ca270
Packit 1ca270
Some packages pay attention to @samp{--enable-@var{feature}} options to
Packit 1ca270
@code{configure}, where @var{feature} indicates an optional part of the
Packit 1ca270
package.  They may also pay attention to @samp{--with-@var{package}}
Packit 1ca270
options, where @var{package} is something like @samp{gnu-as} or @samp{x}
Packit 1ca270
(for the X Window System).  The @file{README} should mention any
Packit 1ca270
@samp{--enable-} and @samp{--with-} options that the package recognizes.
Packit 1ca270
Packit 1ca270
For packages that use the X Window System, @code{configure} can usually
Packit 1ca270
find the X include and library files automatically, but if it doesn't,
Packit 1ca270
you can use the @code{configure} options @samp{--x-includes=@var{dir}}
Packit 1ca270
and @samp{--x-libraries=@var{dir}} to specify their locations.
Packit 1ca270
Packit 1ca270
@node System Type
Packit 1ca270
@section Specifying the System Type
Packit 1ca270
Packit 1ca270
There may be some features @code{configure} can not figure out
Packit 1ca270
automatically, but needs to determine by the type of host the package
Packit 1ca270
will run on.  Usually @code{configure} can figure that out, but if it
Packit 1ca270
prints a message saying it can not guess the host type, give it the
Packit 1ca270
@samp{--host=@var{type}} option.  @var{type} can either be a short name
Packit 1ca270
for the system type, such as @samp{sun4}, or a canonical name with three
Packit 1ca270
fields:
Packit 1ca270
@example
Packit 1ca270
@var{cpu}-@var{company}-@var{system}
Packit 1ca270
@end example
Packit 1ca270
@noindent
Packit 1ca270
See the file @file{config.sub} for the possible values of each field.
Packit 1ca270
If @file{config.sub} isn't included in this package, then this package
Packit 1ca270
doesn't need to know the host type.
Packit 1ca270
Packit 1ca270
If you are building compiler tools for cross-compiling, you can also use
Packit 1ca270
the @samp{--target=@var{type}} option to select the type of system
Packit 1ca270
they will produce code for and the @samp{--build=@var{type}} option
Packit 1ca270
to select the type of system on which you are compiling the package.
Packit 1ca270
Packit 1ca270
@node Sharing Defaults
Packit 1ca270
@section Sharing Defaults
Packit 1ca270
Packit 1ca270
If you want to set default values for @code{configure} scripts to share,
Packit 1ca270
you can create a site shell script called @file{config.site} that gives
Packit 1ca270
default values for variables like @code{CC}, @code{cache_file}, and
Packit 1ca270
@code{prefix}.  @code{configure} looks for
Packit 1ca270
@file{@var{prefix}/share/config.site} if it exists, then
Packit 1ca270
@file{@var{prefix}/etc/config.site} if it exists.  Or, you can set
Packit 1ca270
the @code{CONFIG_SITE} environment variable to the location of the site
Packit 1ca270
script.  A warning: not all @code{configure} scripts look for a site script.
Packit 1ca270
Packit 1ca270
@node Operation Controls
Packit 1ca270
@section Operation Controls
Packit 1ca270
Packit 1ca270
@code{configure} recognizes the following options to control how it
Packit 1ca270
operates.
Packit 1ca270
Packit 1ca270
@table @code
Packit 1ca270
@item --cache-file=@var{file}
Packit 1ca270
Use and save the results of the tests in @var{file} instead of
Packit 1ca270
@file{./config.cache}.  Set @var{file} to @file{/dev/null} to disable
Packit 1ca270
caching, for debugging @code{configure}.
Packit 1ca270
Packit 1ca270
@item --help
Packit 1ca270
Print a summary of the options to @code{configure}, and exit.
Packit 1ca270
Packit 1ca270
@item --quiet
Packit 1ca270
@itemx --silent
Packit 1ca270
@itemx -q
Packit 1ca270
Do not print messages saying which checks are being made.
Packit 1ca270
To suppress all normal output, redirect it to @file{/dev/null}
Packit 1ca270
(any error messages will still be shown).
Packit 1ca270
Packit 1ca270
@item --srcdir=@var{dir}
Packit 1ca270
Look for the package's source code in directory @var{dir}.  Usually
Packit 1ca270
@code{configure} can determine that directory automatically.
Packit 1ca270
Packit 1ca270
@item --version
Packit 1ca270
Print the version of Autoconf used to generate the @code{configure}
Packit 1ca270
script, and exit.
Packit 1ca270
@end table
Packit 1ca270
Packit 1ca270
@noindent
Packit 1ca270
@code{configure} also accepts some other, not widely useful, options.