INSTALL: updated to latest version from Automake

This commit is contained in:
Peter Simons 2010-02-18 16:28:30 +01:00
parent e4af1eb7fe
commit 1abd8ff22d

789
INSTALL
View File

@ -1,436 +1,365 @@
Installing Petidomo
Installation Instructions
*************************
The installation of the Petidomo Mailing List Manager is simple and
straight forward; do not be scared by the length of this document.
There are many different ways and options how to install it and I have
tried my best to cover *all* of them. If you are not interested in
every little detail, you will be able to skim over most of the text
here.
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Peter Simons <simons@computer.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Building the Binaries
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
5. Optionally, type `make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type `make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide `make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Untar the source archive of Petidomo in a directory of your choice
like /usr/local/src or your home directory. This will create a
directory called petidomo-VERSION, where the "VERSION" part is called
exactly as in the file name of the tar archive. Change into this
directory.
Now you have to run the configure script
./configure
which will determine the characteristics of your system and create the
files required to actually build Petidomo. You may provide several
parameters to the script. The interesting ones, including the default
values if unspecified, are:
--help
Display the complete list of command line options.
--prefix
The the PREFIX for all following paths. The default is
/usr/local.
--exec-prefix
Set the EPREFIX for all following paths. This is useful in
case you want to install binaries into a different directory
hierarchy than normal text files, but usually the EPREFIX is
identical to PREFIX. The default is PREFIX.
--bindir
Set the directory where the binaries should be installed. The
default is EPREFIX/bin.
--libexecdir
Set the directory where executables should be installed that
will be called by Petidomo but not by the user directly (like
posting filters). The default is EPREFIX/libexec.
--datadir
Set the directory where read-only architecture-independent
data files should be installed (like the help file). The
default is PREFIX/share.
--sysconfdir
Set the directory where read-only configuration files should
be installed. The default is PREFIX/etc.
--localstatedir
Set the directory where modifiable data files should be
installed (like the approve-queue or the mailing list config
files). The default is PREFIX/var.
--mandir
Set the directory where man documentation files should be
installed. The default is PREFIX/man.
Please note that the directories you specify here are only the default
settings that are compiled into Petidomo. You can modify *all* paths
at run-time via the command line and through the configuration files.
So don't waste to much time figuring out what you want here, you can
change anything later without having to recompile Petidomo.
Finally, here is an example output of the configuration script when
run without any parameters on a Linux machine:
simons@peti:~/projects/petidomo-4.0b1$ ./configure
Configuring OSSP Petidomo, Version 4.0b1 (18-Jan-2001)
creating cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for ranlib... ranlib
checking for flex... flex
checking for yywrap in -lfl... yes
checking for bison... bison -y
checking size of unsigned short... 2
checking size of unsigned int... 4
checking size of unsigned long... 4
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for ssize_t... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
Often, you may want to pass certain flags to the compiler or the
linker to modify the building process. To achieve this, you can set
certain environment variables before calling the configure script.
These variables are:
CC
The name of the C compiler to use.
CPPFLAGS
Flags to pass to the preprocesser before compiling a source
code file.
CFLAGS
Flags to pass to the compiler when compiling a C source code
file.
LDFLAGS
Flags to pass to the linker when linking the binaries.
I personally find this useful to raise the level of compiler
optimization or to add linker flags that tell the linker to strip
unnecessary symbols from the binaries. To achive these effects, I call
the configure script like this:
CFLAGS=-O3 LDFLAGS=-s ./configure
Anyway, once the configure script has been run, just call
make
to start the building process. Petidomo has been tested with various
flavours of the make(1) utility and all of them seem to work fine. If
in doubt, try GNU Make, which is available from ftp.gnu.org.
Petidomo has also been built using parallel builds. This is useful if
you have a multi-processer system. You can do this with most make
utilities by adding the flag "-j4" with "4" being the number of
processes you want to spawn simultaneously. Please note, though, that
some make utilities have problems with the rules that translate the
yacc-modules included in Petidomo correctly when building in parallel.
If you experience any trouble, just build it conventionally and you
should be fine.
Installing the Binaries
=======================
To install the software to your system, all you have to do is execute
make install
This will copy the Petidomo binary, the posting filters included in
the distribution, the sample config files and the manual pages into
the directories you chose at configure time earlier. If you're a
first-time user, you may also want to execute
make install-testlist
which will create a sample mailing list called "testlist" for you.
Assuming you used the default paths when running configure, the
install process will create the follwing directories, respectively
copy the following files to your system:
/usr/local/
/usr/local/bin/
/usr/local/bin/petidomo
/usr/local/bin/petidomo-approve
/usr/local/bin/petidomo-kickout
/usr/local/etc/
/usr/local/etc/petidomo.acl-sample
/usr/local/etc/petidomo.conf-sample
/usr/local/libexec/
/usr/local/libexec/petidomo/
/usr/local/libexec/petidomo/insert-name-in-subject.sh
/usr/local/libexec/petidomo/pgp-decrypt.sh
/usr/local/libexec/petidomo/pgp-encrypt.sh
/usr/local/libexec/petidomo/rfc2369.sh
/usr/local/man/
/usr/local/man/man1/
/usr/local/man/man1/petidomo.1
/usr/local/share/
/usr/local/share/petidomo/
/usr/local/share/petidomo/help
/usr/local/var/
/usr/local/var/petidomo/
/usr/local/var/petidomo/ack-queue/
/usr/local/var/petidomo/index
/usr/local/var/petidomo/lists/
If you run the "install-testlist" target, the following
directory/files will be created additionally:
/usr/local/var/petidomo/lists/testlist/
/usr/local/var/petidomo/lists/testlist/config
/usr/local/var/petidomo/lists/testlist/acl
/usr/local/var/petidomo/lists/testlist/list
Configuring Sendmail
====================
Before you can use Petidomo, you have to configure sendmail so that it
knows about Petidomo -- I assume that you have sendmail installed
already. If you are using an MTA other than sendmail, you are on your
own from here on, I am afraid. Any users who have successfully
installed Petidomo on a qmail-, vmailer-, or postfix-based system are
more than welcome to contribute to this documentation to help other
users.
To run Petidomo via sendmail -- what is what you want to do --, you
have to create apropriate aliases for it. You can do this by adding
the folling lines to your aliases file, which usually resides in
/etc/aliases or, with newer sendmail versions, in /etc/mail/aliases:
petidomo-manager: postmaster
petidomo: "|/usr/local/bin/petidomo --mode=listserv"
petidomo-approve: "|/usr/local/bin/petidomo --mode=approve"
In case you installed the Petidomo binary to some other location, you
will have to change the paths here apropriately of course. You may
also chose that mail for the "petidomo-manager" should go to some
different address than "postmaster", if that suits your needs better;
the main point is that somebody actually *reads* what arrives there.
If executed the "install-testlist" target earlier and thus have the
example mailing list from the distribution installed, you may also
want to add the lines:
testlist: "|/usr/local/bin/petidomo --mode=deliver testlist"
testlist-request: "|/usr/local/bin/petidomo --mode=listserv testlist"
testlist-owner: petidomo-manager
Having done all this, execute the newaliases(1) utility to rebuild
sendmail's internal database. Your changes will not have any effect
unless you do this.
Configuring the File Permissions
================================
The final step, before Petidomo is successfully installed, is to set
the right permissions to the installation directories and installed
files. Unfortunately, the installation process can not do this
automatically; you have to chose what permissions are "right"
yourself. If works like this: Petidomo will be called from sendmail,
thanks to the aliases you just created. That means, that sendmail
determines under what user to start Petidomo. In 99% of all
configurations I have ever seen, that user is "daemon", but it *may*
be something else, so we better figure it out for sure.
Add the line
foobar: "/tmp/foobar-mail"
to your aliases file and execute newaliases(1). Then send an e-mail to
the address "foobar". The contents of this mail will be stored in the
file /tmp/foobar-mail then and we are interested in the user who owns
this file:
root@peti:/# sendmail -v foobar </dev/null
foobar... aliased to "/tmp/foobar-mail"
"/tmp/foobar-mail"... Sent
root@peti:/# ls -l /tmp/foobar-mail
-rw------- 1 daemon daemon 269 Feb 12 17:57 /tmp/foobar-mail
See? On my system it is "daemon" indeed. On your system it may be
someone else. Now that we know, you may remove the foobar-line from
the aliases file again.
OK, sendmail starts Petidomo under user id "daemon". This means that
"daemon" must have read access to virtually any file in the Petidomo
installation. This is the default, because all files are installed
with read permisson for everybody. Also, all directories allow access
to anybody by default. But "daemon" also needs write access to the
"localstatedir" -- /usr/local/var/petidomo per default. You can ensure
this by executing the command:
chown -R daemon /usr/local/var/petidomo
This is a rather simplistic solution to the permisson problem; you
*can* use much more fine-grained settings if you like to. But I
figured that if you are the kind of person who wants to do things like
this, you won't need an explanation how to do it anyway. Just that
much information for you: Petidomo does not actually write to the
"localstatdir", but only to the subdirectory ack-queue located in it.
Of course, you do not necessarily need to have the ack-queue directory
owned by "daemon", you can also set the group permissions
apropriately. Furthermore, Petidomo will usually want to write to the
lists directory located in the "localstatedir", because most list
administrators tend to place the mailing list archives there, but you
can enable write access according to the list's configuration once you
know how you're mailing lists are configured. In case something does
not work as expected, check out the syslog messages for the LOG_MAIL
facility -- this is where Petidomo logs its error messages.
Configuring Petidomo
====================
The last step before we can test our installation is to configure
Petidomo. This is really simple. List the contents of the "sysconfdir"
you chose. If you did not change the default paths, this is
/usr/local/etc. There you will find two files: petidomo.conf-sample
and petidomo.acl-sample. Just rename them to petidomo.conf and
petidomo.acl respectively and fire up your favorite text editor to
edit the file petidomo.conf.
Uncomment the options "Hostname", "AdminPassword", and "MTA" and set
the values correctly. "Hostname" should be the fully qualified domain
name of the machine running Petidomo. It is essential that this name
can receive e-mail, that is, that is has an MX record. (Talk to the
person administrating the domain name service of your organization if
this doesn't make any sense to you.) As "AdminPassword", you can chose
pretty much any text you like, just make sure you remember it. The
"MTA" setting will usually be alright the way it is. You may want to
check whether sendmail does actually live at this path; on some
Unixes, it is not installed at /usr/sbin/sendmail, but at
/usr/lib/sendmail. Change the setting if this is the case. You can
ignore all other settings right now. Come back and configure those
once you have read the apropriate sections of this manual. If you're
an experienced Unix wizard, the comments in the config file will
probably be enough for you to guess what these options do, though.
Once you have done this, your installation is ready to be tested.
Testing the Installation
========================
Asserting you followed all steps described above, you have a working
Petidomo installation now. Occasionally, some minor permisson problem
may still remain to be fixed, or you may want to customize some texts.
To figure out what is left to do (or to realize that there is nothing
left do to), send an e-mail to the "petidomo" user on your machine and
put the word "help" into the mail body -- without the quotes of
course.
On my system, this looks like this:
simons@peti:~/projects/petidomo$ echo help | sendmail -v petidomo
petidomo... aliased to "|/usr/local/bin/petidomo --mode=listserv"
"|/usr/local/bin/petidomo --mode=listserv"... Connecting to prog...
"|/usr/local/bin/petidomo --mode=listserv"... Sent
Once you sent the e-mail, sendmail will start up Petidomo and feed the
mail text into it for processing. If you take a look at the syslogfile
containing the LOG_MAIL facility now -- this is usally
/var/log/messages or /var/log/maillog --, you will find that Petidomo
logged entries there that look pretty much like the following ones.
The backslash ("\") characters at the end of some of these lines
denote that the line has been wrapped for readability. In reality,
this would be one single large line.
sendmail[8705]: f1CIHWJ08705: from=simons, size=5, class=0, \
nrcpts=1, msgid=<200102121817.f1CIHWJ08705@peti.cryp.to>, \
relay=simons@localhost
petidomo[8706]: Petidomo 4.0b1 (18-Jan-2001) starting up; \
mode=listserv, listname=<none>, \
masterconf=/usr/local/etc/petidomo.conf, \
approved=false, ruid=2, euid=2, gid=2, egid=2
petidomo[8706]: simons@peti.cryp.to: help
sendmail[8707]: f1CIHX508707: from=petidomo-manager@peti.cryp.to, \
size=2091, class=-100, nrcpts=1, \
msgid=<200102121817.f1CIHX508707@peti.cryp.to>, \
relay=daemon@localhost
sendmail[8705]: f1CIHWJ08705: \
to="|/usr/local/bin/petidomo --mode=listserv", \
ctladdr=petidomo (2/0), delay=00:00:01, xdelay=00:00:01, \
mailer=prog, pri=30005, dsn=2.0.0, stat=Sent
sendmail[8709]: f1CIHX508707: to=simons@peti.cryp.to, delay=00:00:00, \
xdelay=00:00:00, mailer=local, pri=212091, dsn=2.0.0, stat=Sent
As you can see, Petidomo logged how it was started, where it is
expecting its master config file and under which user- and group id it
is running. Then it logs that it has received a HELP request. This
request will be answered by sending the file
/usr/local/share/petidomo/help back to the person who requested help,
and if everthing worked, you will now find that mail in your mail box.
If something went wrong, Petidomo will tell you what went wrong. So,
please fix the problem and try again. In 99% of all cases, the error
will say something like "opening file XYZ failed: permission denied".
Then all you have to do is to make sure that the user under which
Petidomo has been started (you have the numeric id in the logfile) has
read access to that file. If the user has but Petidomo keeps
complaining, check, whether that user has access to the directory at
all!
Those of you who executed the "install-testlist" target earlier in
the "Building the Binaries" chapter may also want to test whether
this mailing list is working. To do so, send another mail to Petidomo
and put the command "subscribe YOUR-ADDRESS testlist" in the mail
body -- without the quotes! "YOUR-ADDRESS" naturally means that you
should insert your e-mail address here. This command will subscribe
your e-mail address to the "testlist" mailing list; you should
receive a confirmation about that via e-mail within moments. Once that
is accomplished, send another e-mail to the "testlist" address on
your system. The e-mail may look like whatever you want.
Within seconds, you should get the mail back from the mailing list
server -- and so will all other addresses that are subscribed to the
list. My personal test mail looked like this:
From testlist-owner@peti.cryp.to Mon Feb 12 19:43:56 2001
Received: (from daemon@localhost)
by peti.cryp.to id f1CIhuA08872 for simons@peti.cryp.to;
Mon, 12 Feb 2001 19:43:56 +0100
Received: (from simons@localhost)
by peti.cryp.to id f1CIhJY08853 for testlist;
Mon, 12 Feb 2001 19:43:19 +0100
Date: Mon, 12 Feb 2001 19:43:19 +0100
From: Peter Simons <simons@peti.cryp.to>
Message-Id: <200102121843.f1CIhJY08853@peti.cryp.to>
Subject: Petidomo absolutely rules the known earth!
Reply-To: testlist@peti.cryp.to
Sender: testlist-owner@peti.cryp.to
Precedence: list
It does ...
If this all worked for you, you have a your Petidomo installation up
and running. Men will envy you and women will desire you -- unless, of
course, you *are* a woman, then it is vice versa. You will be able to
stop smoking any time you want, you may eat anything you like and as
much as you like, but you will never gain a single pound. Your sex
life will improve dramatically, your boss will like you, your hard
drives will never crash and your Internet connections will always be
fast. All this, thanks to the wonders of the Petidomo Mailing List
Manager!
In case any of the benefits promised above stays away, please consult
paragraphs 11 and 12 of the file COPYING included in this
distribution.
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'. This
is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.