removed -ansi and -languages options from configure, added
configure.texi (a work in progress), configure.man (a terse first cut), build configure.info and install man page.
This commit is contained in:
parent
7da1d33424
commit
8f861f082d
4 changed files with 1039 additions and 12 deletions
|
@ -75,9 +75,12 @@ INSTALL_TARGET = install.all
|
|||
|
||||
all: $(ALL)
|
||||
|
||||
info: doc.info
|
||||
info: configure.info doc.info
|
||||
$(MAKE) subdir_do DO=info "DODIRS=$(SUBDIRS)"
|
||||
|
||||
configure.info: configure.texi
|
||||
$(MAKEINFO) -o configure.info $(srcdir)/configure.texi
|
||||
|
||||
doc.info: doc.texi
|
||||
$(MAKEINFO) -o doc.info $(srcdir)/doc.texi
|
||||
|
||||
|
@ -101,6 +104,7 @@ clean: clean-libiberty clean-texinfo clean-bfd clean-binutils clean-bison \
|
|||
rm -rf *.a TEMP errs core *.o *~ \#* TAGS *.E
|
||||
|
||||
install: $(INSTALL_TARGET)
|
||||
$(INSTALL_DATA) configure.man $(man1dir)/configure.1
|
||||
|
||||
install.all: install-dirs install-libiberty install-texinfo install-binutils install-bison \
|
||||
install-byacc install-ld install-gas install-gcc install-gnulib \
|
||||
|
|
11
configure
vendored
11
configure
vendored
|
@ -51,7 +51,6 @@ symbolic_link='ln -s'
|
|||
|
||||
Makefile=Makefile
|
||||
Makefile_in=Makefile.in
|
||||
ansi=
|
||||
arguments=$*
|
||||
commontargets=
|
||||
configdirs=
|
||||
|
@ -144,10 +143,6 @@ do
|
|||
|
||||
else
|
||||
case ${arg} in
|
||||
-ansi | --a*)
|
||||
ansi=true
|
||||
clib=clib
|
||||
;;
|
||||
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* | --da=* | --d=*)
|
||||
datadir=`echo ${arg} | sed 's/^[-a-z]*=//'`
|
||||
datadiroption=${arg}
|
||||
|
@ -174,11 +169,6 @@ do
|
|||
fatal=yes
|
||||
fi
|
||||
;;
|
||||
-languages=* | --languages=* | --language=* | --languag=* \
|
||||
| --langua=* | --langu=* | --lang=* | --lan=* | --la=* \
|
||||
| --l=*)
|
||||
languages="${languages} `echo ${arg} | sed 's/^[-a-z]*=//'`"
|
||||
;;
|
||||
# -namesubdir | --namesubdir | --namesubdi | --namesubd | --namesub | --namesu | --names | --name | --nam | --na)
|
||||
# next_namesubdir=yes
|
||||
# ;;
|
||||
|
@ -325,7 +315,6 @@ if [ -n "${fatal}" -o "${hosts}" = "help" ] ; then
|
|||
(echo "Usage: configure HOST" ;
|
||||
echo ;
|
||||
echo "Options: [defaults in brackets]" ;
|
||||
echo " -ansi configure w/ANSI library. [no ansi lib]" ;
|
||||
echo " -datadir=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ;
|
||||
echo " -gas configure the compilers for use with gas. [native as]" ;
|
||||
echo " -help print this message. [normal config]" ;
|
||||
|
|
137
configure.man
Normal file
137
configure.man
Normal file
|
@ -0,0 +1,137 @@
|
|||
.\" -*- nroff -*-
|
||||
.\" Copyright (c) 1991 Cygnus Support
|
||||
.\" $Id$
|
||||
.TH configure 1 "13 December 1991" "cygnus support" "Cygnus Support"
|
||||
.de BP
|
||||
.sp
|
||||
.ti \-.2i
|
||||
\(**
|
||||
..
|
||||
|
||||
.SH NAME
|
||||
configure \(em\& prepare source code to be built
|
||||
|
||||
.SH SYNOPSIS
|
||||
configure host1 [host2 [host3 ...]] [-datadir=dir] [-gas] [-help]
|
||||
[-host=h] [-namesubdir=name] [-nfp] [-norecursion] [-objdir=dir]
|
||||
[-prefix=dir] [-recurring] [-rm] [-site=s] [-srcdir=dir] [-subdirs]
|
||||
[-target=t] [-v] [-x]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.I Configure
|
||||
is a program used to prepare souce code to be built. It does this by
|
||||
generating Makefiles and .gdbinit files, creating symlinks, digging
|
||||
directories, and some other miscellaneous file editting.
|
||||
|
||||
.SH OPTIONS
|
||||
.I Configure
|
||||
accepts the following options:
|
||||
|
||||
.TP
|
||||
.I \-datadir=dir
|
||||
sets the root directory for host independent files to
|
||||
.I dir.
|
||||
|
||||
.TP
|
||||
.I \-gas
|
||||
tells configure that the GNU assembler is available on this machine
|
||||
even if it is not ordinarily.
|
||||
|
||||
.TP
|
||||
.I \-help
|
||||
displays a brief summary of the calling convention.
|
||||
|
||||
.TP
|
||||
.I \-host=h
|
||||
asks configure to prepare the source to be compiled in an environment
|
||||
called
|
||||
.I h.
|
||||
This option is very confusing and is best ignored. FIXME: I don't
|
||||
think it should even be documented.
|
||||
|
||||
.TP
|
||||
.I \-namesubdir=name
|
||||
When using -subdirs, this option sets the name of the subdir to be
|
||||
created. This isn't very useful when configuring for multiple hosts.
|
||||
NOTE: support for this option is temporarily suspended.
|
||||
|
||||
.TP
|
||||
.I \-nfp
|
||||
Notifies configure that all of the specified hosts have
|
||||
.I no floating point
|
||||
units.
|
||||
|
||||
.TP
|
||||
.I \-norecursion
|
||||
asks that only the current directory be configured. Normally
|
||||
configure recurs on subdirectories.
|
||||
|
||||
.TP
|
||||
.I \-objdir=dir
|
||||
asks that the build directories be created in dir. NOTE: support for
|
||||
this option is at least temporarily suspended.
|
||||
|
||||
.TP
|
||||
.I \-prefix=dir
|
||||
sets the default location in which to install files to dir. The
|
||||
default is "/usr/local".
|
||||
|
||||
.TP
|
||||
.I \-recurring
|
||||
used internally by configure to supress status messages on
|
||||
subdirectory recursions.
|
||||
|
||||
.TP
|
||||
.I \-rm
|
||||
asks configure to remove a configuration rather than creating one.
|
||||
|
||||
.TP
|
||||
.I \-site=s
|
||||
asks configure to use any site specific Makefile fragments for s when
|
||||
building Makefiles.
|
||||
|
||||
.TP
|
||||
.I \-srcdir=dir
|
||||
tells configure to find the source in srcdir.
|
||||
|
||||
.TP
|
||||
.I \-subdirs
|
||||
asks configure to create subdirectories of the build directory named
|
||||
"H-host" for each host. If the configuration is not native, (host is
|
||||
not target), the the directory will be named "X-host-target" instead.
|
||||
NOTE: support for this option is temporarily suspended.
|
||||
|
||||
.TP
|
||||
.I \-target=t
|
||||
Requests that the sources be configured to target the t machine. If
|
||||
no targets are specified explicitly, the target is assumed to be the
|
||||
same as the host. If multiple targets are specified, configurations
|
||||
for each are created and -subdirs is assumed.
|
||||
|
||||
NOTE: support for multiple targets is at least temporarily suspended.
|
||||
|
||||
.TP
|
||||
.I \-tmpdir=dir
|
||||
Sets the directory in which configure creates temporary files to
|
||||
tmpdir.
|
||||
|
||||
.TP
|
||||
.I \-verbose
|
||||
.I \-v
|
||||
Asks that configure print status lines for each directory configured.
|
||||
Normally, only the status lines for the current directory are printed.
|
||||
|
||||
.TP
|
||||
.I \-x
|
||||
Tells configure that MIT style X11 header files and libraries are
|
||||
available on this machine, even if they are not normally available.
|
||||
|
||||
.SH FILES
|
||||
configure.in for each directory's individual needs
|
||||
config.subr for parsing configuration names
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.RB "`\|" configure "\|'"
|
||||
entry in
|
||||
.B
|
||||
info. (not yet available).
|
897
configure.texi
Normal file
897
configure.texi
Normal file
|
@ -0,0 +1,897 @@
|
|||
\input texinfo @c -*-para-*-
|
||||
@setfilename configure.info
|
||||
@settitle Cygnus Configure
|
||||
|
||||
@node top, What Configure Does, (dir), (dir)
|
||||
|
||||
This file documents the configuration system used and distributed by
|
||||
Cygnus Support.
|
||||
|
||||
@menu
|
||||
* What Configure Does:: What Configure Does
|
||||
* Invoking:: Invoking
|
||||
* How It Does It:: How It Does It
|
||||
* Canonical Triples And Config.Subr:: Canonical Triples And Config.Subr
|
||||
* Native Ports:: Native Ports
|
||||
* Adding Hosts Or Targets:: Adding Hosts Or Targets
|
||||
* Adding Configure To Existing Programs:: Adding Configure To Existing Programs
|
||||
* Makefile Support:: Makefile Support
|
||||
* Known Bugs:: Known Bugs
|
||||
@end menu
|
||||
|
||||
@node What Configure Does, Invoking, top, top
|
||||
@chapter Invoking
|
||||
|
||||
The usual way to invoke @code{configure} is as follows:
|
||||
@example
|
||||
configure @var{host}
|
||||
@end example
|
||||
This asks @code{configure} to prepare the source to be compiled in a
|
||||
@var{host} environment with programs and files to be installed in
|
||||
@file{/usr/local}.
|
||||
|
||||
NOTE: support for multiple hosts is at least temporarily suspended.
|
||||
|
||||
If more than one host is specified on the command line, then
|
||||
configurations are created for each and @code{-subdirs} is assumed.
|
||||
|
||||
@table @code
|
||||
|
||||
@item -datadir=@var{dir}
|
||||
This option requests that the source be configured so that host
|
||||
independent files will be installed in @var{dir}.
|
||||
|
||||
This option sets the @code{configure} variable @code{datadir}. If
|
||||
@code{datadir} is not empty, generated Makefiles will have their
|
||||
@code{datadir} variables set to this value. (See @xref{Install Details}.)
|
||||
|
||||
@item -gas
|
||||
Notifies @code{configure} that the @sc{GNU} assembler is available on
|
||||
all specified hosts.
|
||||
|
||||
@item -help
|
||||
Displays a quick summary of how to invoke @code{configure}.
|
||||
|
||||
@item -host=@var{host}
|
||||
FIXME: I don't think this option should be documented.
|
||||
|
||||
@item -namesubdir=@var{name}
|
||||
Asks that any subdirectories created by the @code{-subdirs} option be
|
||||
named @var{name}. Note that using multiple hosts with
|
||||
@code{-namesubdir=} isn't terribly useful.
|
||||
|
||||
NOTE: support for this option is at least temporary suspended.
|
||||
|
||||
@item -nfp
|
||||
Notifies @code{configure} that all of the specified hosts have @emph{no
|
||||
floating point} units.
|
||||
|
||||
@item -norecursion
|
||||
Asks @code{configure} to configure only this directory. Any
|
||||
subdirectories are ignored. This is used by the executable shell script
|
||||
@file{config.status} to reconfigure the current directory.
|
||||
(@xref{FIXME:config.status}.
|
||||
|
||||
@item -objdir=@var{dir}
|
||||
Asks @code{configure} to create the build tree in @var{dir}. The
|
||||
default is to use the source tree as the build tree. The source
|
||||
directory is assumed to be @file{.}.
|
||||
|
||||
NOTE: support for this option is at least temporary suspended.
|
||||
|
||||
@item -prefix=@var{dir}
|
||||
This option requests that the source be configured so that programs and
|
||||
files will be installed in @var{dir}.
|
||||
|
||||
This option sets the @code{configure} variable @code{prefix}. If
|
||||
@code{prefix} is not empty, generated Makefiles will have their
|
||||
@code{prefix} variables set to this value. (See @xref{Install Details}.)
|
||||
|
||||
@item -recurring
|
||||
This option is used internally by @code{configure} when recurring on
|
||||
subdirectories. It's sole purpose is to supress status output. It can
|
||||
be overriden with the @code{-verbose} option.
|
||||
|
||||
@item -rm
|
||||
Asks @code{configure} to @emph{remove} a configuration rather than
|
||||
create one.
|
||||
|
||||
@item -site=@var{site}
|
||||
Asks that Makefiles be generated using site specific Makefiles for
|
||||
@var{site}. (@xref{FIXME: site specific Makefiles}.)
|
||||
|
||||
@item -srcdir=@var{_dir}
|
||||
Tells @code{configure} that the sources are located in @var{dir}. The
|
||||
build directory is assumed to be @file{.}.
|
||||
|
||||
@item -subdirs
|
||||
Asks that configurations be placed in subdirectories named
|
||||
@file{H-@var{host}} of each build directory, for each host specified.
|
||||
If this configuration is not native, (@var{host} is not @var{target}),
|
||||
then he subdir will be named @file{X-@var{host}-@var{target}} instead.
|
||||
|
||||
NOTE: support for this option is at least temporary suspended.
|
||||
|
||||
@item -target=@var{target}
|
||||
Requests that the sources be configured to target the @var{target}
|
||||
machine. If no targets are specified explicitly, the target is assumed
|
||||
to be the same as the host. If multiple targets are specified,
|
||||
configurations for each are created and @code{-subdirs} is assumed.
|
||||
|
||||
NOTE: support for multiple targets is at least temporarily suspended.
|
||||
|
||||
@item -tmpdir=@var{tmpdir}
|
||||
Sets the directory in which @code{configure} creates temporary files to
|
||||
@var{tmpdir}.
|
||||
|
||||
@item -verbose
|
||||
@item -v
|
||||
Asks that @code{configure} print status lines for each directory
|
||||
configured. Normally, only the status lines for the current directory
|
||||
are printed.
|
||||
|
||||
@item -x
|
||||
Tells @code{configure} that @sc{MIT} style @sc{X11} header files and
|
||||
libraries are available on this machine, even if they are not normally
|
||||
available.
|
||||
|
||||
@end table
|
||||
|
||||
@node Using Configure, Canonical Triples And Config.Subr, Invoking, top
|
||||
@chapter Using Configure
|
||||
|
||||
Configure prepares source directories in anticipation of building.
|
||||
Source cannot be built until it has been configured. The choices
|
||||
and options available at configuration time generally have valid
|
||||
defaults, but the defaults do not cover all cases. The choices
|
||||
available include:
|
||||
|
||||
@menu
|
||||
* Install Locations:: Where to install things once they are built
|
||||
* Build Directories:: Where to build object files
|
||||
* Host:: Host
|
||||
* Target:: Target
|
||||
* Local Conventions:: Local Conventions
|
||||
@end menu
|
||||
|
||||
@node Install Locations, Build Directories, What Configure Does, What Configure Does
|
||||
@section Install Locations
|
||||
|
||||
@cindex Where to install
|
||||
|
||||
Using the default configuration, @code{make install} will create a
|
||||
single tree of files, some of which are programs. The location of this
|
||||
tree is determined by the value of the variable @code{$(prefix)}. The
|
||||
default value of @code{$(prefix)} is @file{/usr/local}. This is
|
||||
probably correct for native tools installed on only one host.
|
||||
|
||||
@menu
|
||||
* prefix:: Changing the default install directory
|
||||
* datadir:: How to separate host independent files
|
||||
from host dependent files when
|
||||
installing for multiple hosts
|
||||
* Install Details:: Full descriptions of all installation
|
||||
subdirectories
|
||||
@end menu
|
||||
|
||||
@node prefix, datadir, Install Locations, Install Locations
|
||||
@subsection Changing the default install directory
|
||||
|
||||
@cindex Changing the default install directory
|
||||
@cindex The prefix directory
|
||||
|
||||
In the default configuration, all files are installed in subdirectories
|
||||
of @file{/usr/local}. The actual location is determined by the value of
|
||||
the @code{configure} variable @code{$@{prefix@}} which determines the
|
||||
value of the Makefile variable @code{$(prefix)}.
|
||||
|
||||
You can also set the value of the Makefile variable @code{$(prefix)}
|
||||
explicitly each time you invoke @code{make} if you are so inclined, but
|
||||
because many programs have this location compiled in, you must specify
|
||||
the @code{$(prefix)} value precisely on each invocation of @code{make}
|
||||
or you will end up with a broken installation.
|
||||
|
||||
To make this easier, the value of the @code{configure} variable
|
||||
@code{$@{prefix@}} can be set on the command line to @code{configure}
|
||||
using the option @code{-prefix=}. (See @xref{prefix}).
|
||||
|
||||
|
||||
@node datadir, Install Details, prefix, Install Locations
|
||||
@subsection Installing for multiple hosts
|
||||
|
||||
@cindex Configuring for multiple hosts
|
||||
@cindex Sharing host independent files
|
||||
@cindex The datadir directory
|
||||
@cindex Installing host independent files
|
||||
|
||||
Host independent files are installed in subdirectories of
|
||||
@file{/usr/local/lib}. The actual location is determined by the value
|
||||
of the @code{configure} variable @code{$@{datadir@}} which determines
|
||||
the value of the Makefile variable @code{$(datadir)}. By default, the
|
||||
value of @code{$@{datadir@}} is @code{$@{prefix@}/lib}. This makes
|
||||
single host installs simple, and simplifies changing the default
|
||||
location for the install tree, but doesn't allow for multiple hosts to
|
||||
effectively share host independent files.
|
||||
|
||||
To configure so that multiple hosts can share common files, use
|
||||
something like:
|
||||
|
||||
@example
|
||||
configure @var{host1} -prefix=/usr/gnu/H-@var{host1} -datadir=/usr/gnu/H-independent
|
||||
make all info install install-info clean
|
||||
configure @var{host2} -prefix=/usr/gnu/H-@var{host2} -datadir=/usr/gnu/H-independent
|
||||
make all info install install-info
|
||||
@end example
|
||||
|
||||
The first line configures the source for @var{host1} in such a way that
|
||||
host specific programs will be placed in subdirectories of
|
||||
@file{/usr/gnu/H-@var{host1}} and host independent files will be placed
|
||||
in @file{/usr/gnu/H-independent}. (See @xref{datadir}.)
|
||||
|
||||
The second line builds and installs all programs for @var{host1},
|
||||
including both host independent and host dependent files.
|
||||
|
||||
The third line reconfigures the source for @var{host2} in such a way
|
||||
that host specific programs will be placed in subdirectories of
|
||||
@file{/usr/gnu/H-@var{host2}} and host independent files will again be
|
||||
placed in @file{/usr/gnu/H-independent}.
|
||||
|
||||
The fourth line builds and installs all programs for @var{host2}. Host
|
||||
dependent files will be installed in new directories but the host
|
||||
independent files will be installed @emph{on top of} the host
|
||||
independent files installed for @var{host1}. This results in a single
|
||||
copy of the host independent files suitable for use by both hosts.
|
||||
|
||||
|
||||
@node Install Details, , datadir, Install Locations
|
||||
@subsection Full descriptions of all installation subdirectories
|
||||
|
||||
In any install, a number of standard directories are created. Their
|
||||
actual names are determined by Makefile variables. Some of the
|
||||
defaults for Makefile variables can be changed at configure time using
|
||||
command line options to @code{configure}. For more information on the
|
||||
standard directories or the Makefile variables, please refer to
|
||||
@cite{standards.text}.
|
||||
|
||||
Note that @code{configure} does not create @code{srcdir} at any time.
|
||||
This is not an installation directory. (@xref{}.)
|
||||
|
||||
All makefile variables can be overridden on the command line to
|
||||
@code{make}. (See @xref{Overriding, Overriding Variables, Overriding
|
||||
Variables, make, Make}.) If you do so, you will need to specify the
|
||||
value precisely the same way for each invocation of @code{make} or you
|
||||
risk ending up with a broken installation. This is because many
|
||||
programs have the locations of other programs or files compiled into
|
||||
them. If you find yourself overriding any of the variables frequently,
|
||||
you should consider site depedent Makefile fragments. (See @xref{}.)
|
||||
|
||||
During @code{make install}, the following standard directories will be
|
||||
created and populated:
|
||||
|
||||
@vindex prefix
|
||||
@defvr {Makefile and configure} prefix
|
||||
By default, the value of this variable determines the root of the
|
||||
installation tree. It may be overridden with the @code{-srcdir=}
|
||||
command line option to @code{configure}. (@xref{Invoking}.) The
|
||||
default value for @code{prefix} is @file{/usr/local}.
|
||||
@end defvr
|
||||
|
||||
@vindex bindir
|
||||
@defvr Makefile bindir
|
||||
The value of this variable names a directory intended to contain binary
|
||||
programs that users can run. The default value for @code{bindir}
|
||||
depends on @code{prefix} so @code{bindir} is normally changed
|
||||
only indirectly through @code{prefix}. The default value for
|
||||
@code{$(bindir)} is @code{prefix}@file{/bin}.
|
||||
@end defvr
|
||||
|
||||
@vindex datadir
|
||||
@defvr {Makefile and configure} datadir
|
||||
The value of this variable names a directory intended to contain host
|
||||
independent files. The @code{configure} variable, which is used to set
|
||||
the default value of the Makefile variable, can be set at configure time
|
||||
using the @code{-datadir=} option to @code{configure}.
|
||||
(@xref{Invoking}.) The default value for @code{datadir} is
|
||||
@code{prefix}@file{/lib}.
|
||||
@end defvr
|
||||
|
||||
@vindex libdir
|
||||
@defvr Makefile libdir
|
||||
The value of this variable names a directory intended to hold libraries
|
||||
and support programs. The default value for @code{libdir}
|
||||
depends on @code{prefix} so @code{libdir} is normally changed
|
||||
only indirectly through @code{prefix}. The default value for
|
||||
@code{libdir} is @code{prefix}@file{/lib}.
|
||||
@end defvr
|
||||
|
||||
@vindex mandir
|
||||
@defvr Makefile mandir
|
||||
The value of this variable names a directory intended to hold @emph{man}
|
||||
format man pages. The default value for @code{mandir}
|
||||
depends on @code{prefix} so @code{mandir} is normally changed
|
||||
only indirectly through @code{prefix}. The default value for
|
||||
@code{mandir} is @code{datadir}@file{/man}.
|
||||
@end defvr
|
||||
|
||||
@vindex man@var{N}dir
|
||||
@defvr Makefile man@var{N}dir
|
||||
There are eight of these variables named @code{man1dir}, @code{man2dir},
|
||||
etc. They are intended to name the specific directories which hold the
|
||||
man pages of their respective sections. That is, @code{man1dir} holds
|
||||
@file{emacs.1}, the man page for the emacs program while @code{man5dir}
|
||||
holds the man page describing the @code{rcs} data file format, called
|
||||
@file{rcsfile.5}. The default value for @code{man@var{N}dir}
|
||||
depends on @code{prefix} so @code{man@var{N}dir} is normally changed
|
||||
only indirectly through @code{prefix}. The default value for
|
||||
@code{man@var{N}dir} is @code{mandir}@file{/man@var{N}}.
|
||||
@end defvr
|
||||
|
||||
@vindex manext
|
||||
@defvr Makefile manext
|
||||
The makefile variable manext is not supported by the @code{configure}.
|
||||
The @sc{gnu} coding standards do not call for @code{man1ext},
|
||||
@code{man2ext}, so the intended use for @code{manext} is not clear.
|
||||
(See also @xref{FIXME:extensions}.)
|
||||
@end defvr
|
||||
|
||||
@vindex infodir
|
||||
@defvr Makefile infodir
|
||||
The value of this variable names a directory intended to hold
|
||||
@emph{info} format documentation. The default value for @code{infodir}
|
||||
depends on @code{prefix} so @code{infodir} is normally changed
|
||||
only indirectly through @code{prefix}. The default value for
|
||||
@code{infodir} is @code{datadir}@file{/info}.
|
||||
@end defvr
|
||||
|
||||
@vindex docdir
|
||||
@defvr Makefile docdir
|
||||
The value of this variable names a directory intended to hold any
|
||||
documentation that is in a format other than @emph{info} or @emph{man}.
|
||||
The default value for @code{docdir} depends on @code{prefix} so
|
||||
@code{docdir} is normally changed only indirectly through @code{prefix}.
|
||||
The default value for @code{docdir} is @code{datadir}@file{/doc}. Note
|
||||
that this variable is an extension to the @sc{gnu} coding standards.
|
||||
(See also @xref{FIXME:extensions}.)
|
||||
@end defvr
|
||||
|
||||
@vindex includedir
|
||||
@defvr Makefile includedir
|
||||
The value of this variable names a directory intended to hold the
|
||||
headers files that accompany the libraries installed in @code{libdir}.
|
||||
The default value for @code{includedir} depends on @code{prefix} so
|
||||
@code{includedir} is normally changed only indirectly through @code{prefix}. The default value for
|
||||
@code{includedir} is @code{prefix}@file{/include}.
|
||||
@end defvr
|
||||
|
||||
|
||||
@node Build Directories, Host, Install Locations, What Configure Does
|
||||
@section Build Directories
|
||||
|
||||
|
||||
@node Host, Target, Build Directories, What Configure Does
|
||||
@section Host
|
||||
|
||||
|
||||
@node Target, Local Conventions, Host, What Configure Does
|
||||
@section Target
|
||||
|
||||
|
||||
@node Local Conventions, , Target, What Configure Does
|
||||
@section Local Conventions
|
||||
|
||||
|
||||
|
||||
@node How It Does It, How It Does It, What Configure Does, top
|
||||
@chapter How It Does It
|
||||
|
||||
When configure runs, it does the following things.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item Create Directories
|
||||
When configure is run with either of the
|
||||
|
||||
@itemize @minus
|
||||
@item Parallels Source Tree (If -Srcdir)
|
||||
@item Adds Subdirs (If -Subdir)
|
||||
@end itemize
|
||||
|
||||
@item Generates Makefiles
|
||||
@item Generates .Gdbinit
|
||||
@item Makes Symlinks
|
||||
@item Misc (Usually File Editting)
|
||||
@item generates config.status
|
||||
@end itemize
|
||||
|
||||
@node Canonical Triples And Config.Subr, Native Ports, How It Does It, top
|
||||
@chapter Canonical Triples And Config.Subr
|
||||
|
||||
|
||||
@menu
|
||||
* Config.Subr Calling Convention:: Config.Subr Calling Convention
|
||||
* Definition Of Canonical Triples:: Definition Of Canonical Triples
|
||||
* Maps Aliases To Canonical Triples:: Maps Aliases To Canonical Triples
|
||||
* Validates Canonical Triples:: Validates Canonical Triples
|
||||
@end menu
|
||||
|
||||
@node Config.Subr Calling Convention, Definition Of Canonical Triples, Canonical Triples And Config.Subr, Canonical Triples And Config.Subr
|
||||
@section Config.Subr Calling Convention
|
||||
|
||||
|
||||
@node Definition Of Canonical Triples, Maps Aliases To Canonical Triples, Config.Subr Calling Convention, Canonical Triples And Config.Subr
|
||||
@section Definition Of Canonical Triples
|
||||
|
||||
|
||||
@node Maps Aliases To Canonical Triples, Validates Canonical Triples, Definition Of Canonical Triples, Canonical Triples And Config.Subr
|
||||
@section Maps Aliases To Canonical Triples
|
||||
|
||||
|
||||
@node Validates Canonical Triples, , Maps Aliases To Canonical Triples, Canonical Triples And Config.Subr
|
||||
@section Validates Canonical Triples
|
||||
|
||||
|
||||
|
||||
@node Native Ports, Adding Hosts Or Targets, Canonical Triples And Config.Subr, top
|
||||
@chapter Native Ports
|
||||
|
||||
|
||||
|
||||
@menu
|
||||
* Add A Host:: Add A Host
|
||||
* Port An Existing Target:: Port An Existing Target
|
||||
* Add A Target:: Add A Target
|
||||
* Build Host & Target:: Build Host & Target
|
||||
* Build New Target On Some Other Host:: Build New Target On Some Other Host
|
||||
@end menu
|
||||
|
||||
@node Add A Host, Port An Existing Target, Native Ports, Native Ports
|
||||
@section Add A Host
|
||||
|
||||
|
||||
@node Port An Existing Target, Add A Target, Add A Host, Native Ports
|
||||
@section Port An Existing Target
|
||||
|
||||
|
||||
@node Add A Target, Build Host & Target, Port An Existing Target, Native Ports
|
||||
@section Add A Target
|
||||
|
||||
|
||||
@node Build Host & Target, Build New Target On Some Other Host, Add A Target, Native Ports
|
||||
@section Build Host & Target
|
||||
|
||||
|
||||
@node Build New Target On Some Other Host, , Build Host & Target, Native Ports
|
||||
@section Build New Target On Some Other Host
|
||||
|
||||
|
||||
|
||||
@node Adding Hosts Or Targets, Adding Configure To Existing Programs, Native Ports, top
|
||||
@chapter Adding Hosts Or Targets
|
||||
|
||||
|
||||
|
||||
@menu
|
||||
* Add Canonical Triple To Config.Subr (Cf Config.Subr):: Add Canonical Triple To Config.Subr (Cf Config.Subr)
|
||||
* (Optional) Add Alias (Cf Config.Subr)::
|
||||
* Monte Carlo - Configure ; Make:: Monte Carlo - Configure ; Make
|
||||
* Remedies:: Remedies
|
||||
@end menu
|
||||
|
||||
@node Add Canonical Triple To Config.Subr (Cf Config.Subr), (Optional) Add Alias (Cf Config.Subr), Adding Hosts Or Targets, Adding Hosts Or Targets
|
||||
@section Add Canonical Triple To Config.Subr (Cf Config.Subr)
|
||||
|
||||
|
||||
@node (Optional) Add Alias (Cf Config.Subr), Monte Carlo - Configure ; Make, Add Canonical Triple To Config.Subr (Cf Config.Subr), Adding Hosts Or Targets
|
||||
@section (Optional) Add Alias (Cf Config.Subr)
|
||||
|
||||
|
||||
@node Monte Carlo - Configure ; Make, Remedies, (Optional) Add Alias (Cf Config.Subr), Adding Hosts Or Targets
|
||||
@section Monte Carlo - Configure ; Make
|
||||
|
||||
|
||||
@node Remedies, , Monte Carlo - Configure ; Make, Adding Hosts Or Targets
|
||||
@section Remedies
|
||||
|
||||
|
||||
@menu
|
||||
* Automagic Config:: Automagic Config
|
||||
* Symlinked Files:: Symlinked Files
|
||||
* Makefile Fragments (Cf Configure.In):: Makefile Fragments (Cf Configure.In)
|
||||
@end menu
|
||||
|
||||
@node Automagic Config, Symlinked Files, Remedies, Remedies
|
||||
@subsection Automagic Config
|
||||
|
||||
|
||||
@node Symlinked Files, Makefile Fragments (Cf Configure.In), Automagic Config, Remedies
|
||||
@subsection Symlinked Files
|
||||
|
||||
|
||||
@node Makefile Fragments (Cf Configure.In), , Symlinked Files, Remedies
|
||||
@subsection Makefile Fragments (Cf Configure.In)
|
||||
|
||||
@node Adding Configure To Existing Programs, Known Bugs, Adding Hosts Or Targets, top
|
||||
@chapter Adding Configure To Existing Programs
|
||||
|
||||
|
||||
If you are writing a new program, don't worry about porting issues or
|
||||
configure until it is running reasonably on some host. Then refer
|
||||
back to this section.
|
||||
|
||||
@menu
|
||||
* Makefile Support:: Makefile Support
|
||||
* Automagic Configuration:: Automagic Configuration
|
||||
@end menu
|
||||
|
||||
@node Makefile Support, Automagic Configuration, Adding Configure To Existing Programs, Adding Configure To Existing Programs
|
||||
@section Makefile Support
|
||||
|
||||
|
||||
@menu
|
||||
* Makefile Host Support - Move It To Host Fragments:: Makefile Host Support - Move It To Host Fragments
|
||||
* Add Standard Macros (Template Follows):: Add Standard Macros (Template Follows)
|
||||
@end menu
|
||||
|
||||
@node Makefile Host Support - Move It To Host Fragments, Add Standard Macros (Template Follows), Makefile Support, Makefile Support
|
||||
@subsection Makefile Host Support - Move It To Host Fragments
|
||||
|
||||
|
||||
@node Add Standard Macros (Template Follows), , Makefile Host Support - Move It To Host Fragments, Makefile Support
|
||||
@subsection Add Standard Macros (Template Follows)
|
||||
|
||||
@itemize @bullet
|
||||
@item as defined in standards.text
|
||||
@item also add
|
||||
|
||||
@itemize @minus
|
||||
@item includedir
|
||||
This macro defines the directory in which to install any headers files that should be made available to users.
|
||||
@item docdir
|
||||
This macro defines where to install any documentation that is not either a man page or an info file. For man pages, see mandir,
|
||||
for info, see infodir.
|
||||
@end itemize
|
||||
|
||||
@item template
|
||||
|
||||
@example
|
||||
|
||||
# Makefile for GNU tar program.
|
||||
|
||||
#
|
||||
# Makefile
|
||||
# Copyright (C) 1990, 1991 Cygnus Support
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#
|
||||
|
||||
srcdir = .
|
||||
|
||||
prefix = /usr/local
|
||||
|
||||
bindir = $(prefix)/bin
|
||||
datadir = $(prefix)/lib
|
||||
libdir = $(prefix)/lib
|
||||
mandir = $(datadir)/man
|
||||
man1dir = $(mandir)/man1
|
||||
man2dir = $(mandir)/man2
|
||||
man3dir = $(mandir)/man3
|
||||
man4dir = $(mandir)/man4
|
||||
man5dir = $(mandir)/man5
|
||||
man6dir = $(mandir)/man6
|
||||
man7dir = $(mandir)/man7
|
||||
man8dir = $(mandir)/man8
|
||||
man9dir = $(mandir)/man9
|
||||
infodir = $(datadir)/info
|
||||
includedir = $(prefix)/include
|
||||
docdir = $(datadir)/doc
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
INSTALL = install -c
|
||||
INSTALL_PROGRAM = $(INSTALL)
|
||||
INSTALL_DATA = $(INSTALL)
|
||||
|
||||
AR = ar
|
||||
AR_FLAGS = qv
|
||||
BISON = bison
|
||||
MAKEINFO = makeinfo
|
||||
RANLIB = ranlib
|
||||
|
||||
# In order to disable remote-tape support, add -DNO_REMOTE to the
|
||||
# appropriate DEFS line, and remove rtape_lib.* from LOCAL_@{SRC,OBJ@}
|
||||
# For Ultrix 3.1, you will have to compile rtape_lib.c with -DUSG.
|
||||
# Add -DUSE_REXEC to use rexec for remote tape operations
|
||||
# instead of forking rsh or remsh.
|
||||
#
|
||||
# If tar fails to properly print error msgs, or core-dumps doing same,
|
||||
# you may need to change which version of msg...() you are using.
|
||||
# To do so, add one of the following to your DEFS= line
|
||||
# -DSTDC_MSG If you are using an ANSI compiler, and have vfprintf().
|
||||
# -DVARARGS_MSG If you have varargs.h and vfprintf()
|
||||
# -DDOPRNT_MSG If you have _doprnt(), and no useful varargs support
|
||||
# -DLOSING_MSG If nothing else works.
|
||||
#
|
||||
# Some non-BSD systems may have to add -DNEED_TZSET in order to have getdate.y
|
||||
# compile correctly.
|
||||
#
|
||||
# If you have a system V system which defines size_t, add -DHAVE_SIZE_T.
|
||||
# If you have a system which defines strstr, add -DHAVE_STRSTR.
|
||||
#
|
||||
# If you can't use remote tar with the rmt library, you can still get
|
||||
# some stuff to work right by adding -DUSE_REXEC.
|
||||
#
|
||||
# Some people's systems define a prototype for signal handlers which
|
||||
# require them to be declared as void. If you get such problems in
|
||||
# rtape_lib, function command, then define -DSIGNAL_VOID.
|
||||
#
|
||||
# getdate.y has 8 shift/reduce conflicts.
|
||||
#
|
||||
# In addition to setting DEFS appropriately for your system, you might
|
||||
# have to hand edit the #defines and #undefs in port.c.
|
||||
#
|
||||
|
||||
## GNU version
|
||||
DEFS = -DBSD42
|
||||
LOCAL_SRC =
|
||||
LOCAL_OBJ =
|
||||
LDFLAGS =
|
||||
LIBS = -lutils
|
||||
LINT = lint
|
||||
LINTFLAGS = -abchx
|
||||
DEF_AR_FILE = \"-\"
|
||||
DEFBLOCKING = 20
|
||||
O = o
|
||||
@end example
|
||||
|
||||
#### Host, target, and site specific Makefile fragments come in here.
|
||||
###
|
||||
|
||||
@itemize @bullet
|
||||
@item Identify Nonstandard Macros
|
||||
@itemize @minus
|
||||
@item Put Defaults Before The Fragment Hook (Cf)
|
||||
@item Move Non-Defaults To Makefile Fragments (Cf)
|
||||
@item Map To Those Fragments In Configure.In (Cf)
|
||||
@end itemize
|
||||
|
||||
@item Fragment Hook
|
||||
|
||||
@itemize @minus
|
||||
@item Should Follow Standard And Non-Standard Macros
|
||||
@item Should Preceed All Targets
|
||||
@item Looks Like
|
||||
#### Host, target, and site specific Makefile fragments come in here.
|
||||
###
|
||||
|
||||
The line beginning with four hashes is the important part. The comment and the line beginning with three hashes are only
|
||||
a conventional convenience.
|
||||
@end itemize
|
||||
|
||||
@item Makefile Fragments
|
||||
@item Host
|
||||
@item Target
|
||||
@item Site
|
||||
@item Mv Makefile Makefile.In
|
||||
@item Standard Targets
|
||||
@item All (Should Be The Default)
|
||||
@item Install
|
||||
@item Clean
|
||||
@item Info
|
||||
@item Install-Info
|
||||
@item Clean-Info
|
||||
@item The Config Subdirectory
|
||||
@item Configure.In
|
||||
@item Declarations
|
||||
@item Srctrigger
|
||||
@item Srcname
|
||||
@item Configdirs
|
||||
@item Target_Dependent
|
||||
@item Per-Host
|
||||
@item Per-Target
|
||||
@item Post-Target
|
||||
@item Available Variables
|
||||
|
||||
@defvar{host}
|
||||
Contains the actual name that the user entered for the host. Since many
|
||||
things that the user could enter would map to the same canonical triple,
|
||||
this variable is innappropriate to use for picking available
|
||||
configurations. For that, use @code{host_cpu}, @code{host_vendor},
|
||||
and/or @code{host_os}. This variable is useful, however, for error
|
||||
messages.
|
||||
@end defvar
|
||||
|
||||
@defvar{host_cpu}
|
||||
Contains the first element of the canonical triple representing the host
|
||||
as returned by @file{config.subr}. This is occasionally used to
|
||||
distinguish between minor variations of a particular vendor's operating
|
||||
system and sometimes to determine variations in binary format between
|
||||
the host and the target.
|
||||
@end defvar
|
||||
|
||||
@defvar{host_vendor}
|
||||
Contains the second element of the canonical triple representing the
|
||||
host as returned by @file{config.subr}. This is usually used to
|
||||
distinguish betwen the numerous variations between @emph{common}
|
||||
operating systems.
|
||||
@end defvar
|
||||
|
||||
@defvar{host_os}
|
||||
Contains the the third element of the canonical triple representing the
|
||||
host as returned by @file{config.subr}.
|
||||
@end defvar
|
||||
|
||||
@defvar{target}
|
||||
Contains the actual name that the user entered for the target. Since many
|
||||
things that the user could enter would map to the same canonical triple,
|
||||
this variable is innappropriate to use for picking available
|
||||
configurations. For that, use @code{target_cpu}, @code{target_vendor},
|
||||
and/or @code{target_os}. This variable is useful, however, for error
|
||||
messages.
|
||||
@end defvar
|
||||
|
||||
@defvar{target_cpu}
|
||||
Contains the first element of the canonical triple representing the
|
||||
target as returned by @file{config.subr}. This is used heavily by
|
||||
programs involved in building programs, like the compiler, assembler,
|
||||
linker, etc. Most programs will not need the @code{target} variables at
|
||||
all, but this one could conceivably be used to build a program, for
|
||||
instance, that operated on binary data files whose byte order or
|
||||
alignment are other than that of the system on which the program is
|
||||
running.
|
||||
@end defvar
|
||||
|
||||
@defvar{target_vendor}
|
||||
Contains the second element of the canonical triple representing the
|
||||
target as returned by @file{config.subr}. This is usually used to
|
||||
distinguish betwen the numerous variations between @emph{common}
|
||||
operating systems or object file formats. Sometimes it is used to
|
||||
switch between different flavors of users interfaces.
|
||||
@end defvar
|
||||
|
||||
@defvar{target_os}
|
||||
Contains the the third element of the canonical triple representing the
|
||||
target as returned by @file{config.subr}. This variable is used by
|
||||
development tools to distinguish between subtle variations in object
|
||||
file formats that some vendors use across operating system releases. It
|
||||
might also be use to decide which libraries to build or what user
|
||||
interface the tool should provide.
|
||||
@end defvar
|
||||
|
||||
@defvar{nfp}
|
||||
Is set to @code{true} if the user invoked configure with the @code{-nfp}
|
||||
command line option, otherwise it is empty. This is a request to target
|
||||
a machine with @emph{no floating point} unit, even if the machine ordinarily
|
||||
has a floating point unit available. This option has no negation.
|
||||
@end defvar
|
||||
|
||||
@defvar{gas}
|
||||
Is set to @code{true} if the user invoked configure with the @code{-gas}
|
||||
command line option, otherwise it is empty. This is a request to assume
|
||||
that the target machine has gas available even if it ordinarily does
|
||||
not. The converse option, @code{-no-gas} is not available.
|
||||
@end defvar
|
||||
|
||||
@defvar{x}
|
||||
Is set to @code{true} if the user invoked configure with the @code{-x}
|
||||
command line option, otherwise it is empty. This is a request to assume
|
||||
that @sc{mit x11} compatible headers files and libraries are available,
|
||||
regardless of what is normally available on this host.
|
||||
@end defvar
|
||||
|
||||
@defvar{srcdir}
|
||||
Is set to the name of the directory containing the source for this
|
||||
program. This will be different from @file{.} if the user has
|
||||
specified either the @code{-srcdir=} or the @code{-subdirs} options.
|
||||
Note that @code{srcdir} is not necessarily an absolute path.
|
||||
@end defvar
|
||||
|
||||
@defvar{host_makefile_frag}
|
||||
Is set to a file name representing to the default Makefile fragment for
|
||||
this host. It may be set in @file{configure.in} to overide this
|
||||
default.
|
||||
@end defvar
|
||||
|
||||
@defvar{target_makefile_frag}
|
||||
Is set to a file name representing to the default Makefile fragment for
|
||||
this target. It may be set in @file{configure.in} to overide this
|
||||
default.
|
||||
@end defvar
|
||||
|
||||
@defvar{site_makefile_frag}
|
||||
Is set to a file name representing to the default Makefile fragment for
|
||||
this host. It may be set in @file{configure.in} to overide this
|
||||
default. Normally @code{site_makefile_frag} is empty, but will have a
|
||||
value if the user specified @code{-site=} on the command line. This
|
||||
variable should probably not be overridden.
|
||||
@end defvar
|
||||
|
||||
@defvar{Makefile}
|
||||
Is set to the name of the generated @file{Makefile}. Normally this
|
||||
value is precisely @file{Makefile} but some programs may want something
|
||||
else.
|
||||
@end defvar
|
||||
|
||||
@defvar{removing}
|
||||
Is normally empty but will be set to some non-empty value if the user
|
||||
specified @code{-rm} on the command line. That is, if @code{removing}
|
||||
is non-empty, then configure is @emph{removing} a configuration rather
|
||||
than creating one.
|
||||
@end defvar
|
||||
|
||||
@defvar{files}
|
||||
If this variable is non-empty following the @code{per-target:} section,
|
||||
then each word in it's value will be the target of a symbolic link
|
||||
named in the @code{links} variable.
|
||||
@end defvar
|
||||
|
||||
@defvar{links}
|
||||
If the @code{files} variable is non-empty following the
|
||||
@code{per-target:} section, then symbolic links will be created with the
|
||||
first word of links pointing to the first word of files, the second word of
|
||||
links pointing to the second word of files, and so on.
|
||||
@end defvar
|
||||
|
||||
@end itemize
|
||||
@end itemize
|
||||
|
||||
@node Automagic Configuration, , Makefile Support, Adding Configure To Existing Programs
|
||||
@section Automagic Configuration
|
||||
|
||||
|
||||
@menu
|
||||
* Should Be Used If Prep'D Files Don'T Exist:: Should Be Used If Prep'D Files Don'T Exist
|
||||
@end menu
|
||||
|
||||
@node Should Be Used If Prep'D Files Don'T Exist, , Automagic Configuration, Automagic Configuration
|
||||
@subsection Should Be Used If Prep'D Files Don'T Exist
|
||||
|
||||
|
||||
|
||||
@node Known Bugs, Variables Index, Adding Configure To Existing Programs, top
|
||||
@chapter Known Bugs
|
||||
|
||||
The following bugs are known to exist.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item
|
||||
There is no way to query about known hosts, known targets, or the
|
||||
porting or testing status of any configuration.
|
||||
|
||||
@item
|
||||
The negations to the options @code{-gas}, @code{-x}, and @code{-nfp} are
|
||||
not available.
|
||||
|
||||
@end itemize
|
||||
|
||||
@node Variables Index, Concept Index, Known Bugs, top
|
||||
@unnumbered Variable Index
|
||||
|
||||
@printindex vr
|
||||
|
||||
@node Concept Index, , Variables Index, top
|
||||
@unnumbered Concept Index
|
||||
|
||||
@printindex cp
|
||||
|
||||
@summarycontents
|
||||
@contents
|
||||
@bye
|
||||
|
||||
@c Local Variables:
|
||||
@c fill-column: 79
|
||||
@c outline-regexp: "@chap"
|
||||
@c End:
|
||||
@c (setq outline-regexp "@chapt\\\|@unnum\\\|@setf\\\|@conte\\\|@sectio\\\|@subsect\\\|@itemize\\\|@defvar{")
|
Loading…
Reference in a new issue