aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in6
-rwxr-xr-xconfigure11
-rw-r--r--configure.man137
-rw-r--r--configure.texi897
4 files changed, 1039 insertions, 12 deletions
diff --git a/Makefile.in b/Makefile.in
index 56765d2..0da2cf1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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 \
diff --git a/configure b/configure
index a7c5e59..5f833ef 100755
--- a/configure
+++ b/configure
@@ -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]" ;
diff --git a/configure.man b/configure.man
new file mode 100644
index 0000000..c77cd20
--- /dev/null
+++ b/configure.man
@@ -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).
diff --git a/configure.texi b/configure.texi
new file mode 100644
index 0000000..6fcef34
--- /dev/null
+++ b/configure.texi
@@ -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{")