-
-
On Configuring Development Tools
- Last Mod Fri May 3 13:02:35 PDT 1991, by rich@sendai
+ K. Richard Pixley
+ Cygnus Support
INTRO
-----
This document attempts to describe the general concepts behind
configuration of the Cygnus Support release of the GNU Development
- Tools. It also discusses common usage. For a more in succint
- description, please refer to the man page on "configure" which you
- should have received {FIXME: ALONG WITH LOTS OF OTHER VERY PRETTY
- HARD COPY OR IN A DIFFERENT DISTRIBUTION OR ON THIS TAPE OR SHRINK
- BOX OR SOMETHING}.
+ Tools. It also discusses common usage. Eventually, FIXME, there
+ will also be a man page for "configure", an "info" tree, etc.
BASICS
structure, the intermediate pieces used in the build process must
be kept separate.
- ./configure sun4 +forcesubdirs +notation=postfix
- ./configure sun3 +forcesubdirs +notation=infix
+ ./configure sun4 +subdirs +notation=postfix
+ ./configure sun3 +subdirs +notation=infix
will create subdirectories for the intermediate pieces of the sun4
and sun3 configurations. This is necessary as previous systems
were only capable of one configuration at a time. A second
configuration overwrote the first. We've chosen to retain this
- behaviour so the "+forcesubdirs" configuration option is necessary
+ behaviour so the "+subdirs" configuration option is necessary
to get the new behaviour. The order of the arguments doesn't
matter. There should be exactly one argument without a leading
'+' sign and that argument will be assumed to be the host name.
From here on the examples will assume that you want to build the
- tools "in place" and won't show the "+forcesubdirs" option, but
+ tools "in place" and won't show the "+subdirs" option, but
remember that it is available.
In order to actually install the program, the configuration system
default location is /usr/local. We refer to this location as
$(destdir). All user visible programs will be installed in
$(destdir)/bin. All other programs and files will be installed in
- a subdirectory of $(destdir)/lib. For the tools in this
- directory, the files not normally user visible will be installed
- in $(destdir)/lib/gcc.
+ a subdirectory of $(destdir)/lib.
You can elect to change $(destdir) only as a configuration time
option.
In this example, like before, we create two configurations. The
first is intended to be built in a sun4 environment, in
subdirectories, to be installed in /local. The second is intended
- to be build in a sun3 environment, in subdirectories, to be
+ to be built in a sun3 environment, in subdirectories, to be
installed in /local.
Unlike the previous example, the first configuration will produce
FINAL NOTES
-----------
-Gdb's config has features not yet present in the uniform configuration
-scheme described here. For this reason, configuration of gdb must
-currently be done separately from that of the rest of this package.
-This will be corrected soon. For more information on the
-configuration of gdb, please refer to the documents in gdb.{your
-target} if it exists, otherwise gdb.
-
By "configures", I mean that links, Makefile, .gdbinit, and
config.status are built. Configuration is always done from the source
directory.
hostname and target is targetname. If a previous configuration
existed, it will be overwritten.
-* "./configure +forcesubdirs hostname +target=targetname" creates a
- subdirectories Host-hostname and Host-hostname/Target-targetname and
- configures Host-hostname/Target-targetname. For now, makes should
- be done from Host-hostname/Target-targetname. "./configure +f name"
- works as expected. That is, it creates Host-name and
- Host-name/Target-name and configures the latter.
+* "./configure +subdirs hostname +target=targetname" creates a
+ subdirectories H-hostname and H-hostname/T-targetname and
+ configures H-hostname/T-targetname. For now, makes should
+ be done from H-hostname/T-targetname. "./configure +sub name"
+ works as expected. That is, it creates H-name and
+ H-name/T-name and configures the latter.
Hacking configurations:
subdirectories or not. The host and target specific Makefile may or
may not exist. If fragments
-* Makefiles can be editted directly, but those changes will eventually
+* Makefiles can be edited directly, but those changes will eventually
be lost. Changes intended to be permanent for a specific host
should be made to the host specific Makefile fragment. This should
be in ./config/hmake-host if it exists. Changes intended to be
these, either use "make Makefile" or re-configure from the source
directory.
-* configure can be editted directly, but those changes will eventually
+* configure can be edited directly, but those changes will eventually
be lost. Changes intended to be permanent for a specific directory
should be made to configure.in. Changes intended to be permanent
for all configure scripts should be made to configure.template.
Propogating changes to configure.in requires the presence of
configure.template which normally resides in the uppermost directory
you received. To propogate changes to either configure.template or
- a configure.in, use "configure +template=absolutepathtothetemplate".
+ a configure.in, use "configure +template=pathtothetemplate".
This will configure the configure scripts themselves, recursively if
appropriate.