automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Autotools Introduction chapter + amhello-1.0.tar.gz


From: Ralf Wildenhues
Subject: Re: Autotools Introduction chapter + amhello-1.0.tar.gz
Date: Wed, 16 Aug 2006 22:23:57 +0200
User-agent: Mutt/1.5.12-2006-07-14

Hello Alexandre,

* Alexandre Duret-Lutz wrote on Wed, Aug 16, 2006 at 07:28:29PM CEST:
> Here is the patch.  make distcheck is still running, but anyway
> I'll let this patch mellow until the week-end.

May I suggest the following patch, to be applied after yours?
(Or you could combine the two, however you like.)

Notes:
- the @/ I added below within the @uref are ineffectual ATM, but this
  way you don't have to think much when changing the text.
- I could not help doing the en_UK -> en_US thing again, for
  consistency.
- Some `the @file{foo}'  ->  `the @file{foo} file' or similar
  to ease understanding.
- the DESTDIR example was broken in that the file `file.lst' would
  inadvertently end up in the tarball.

> I haven't changed the prompt or font usage for "Makefile".  I'm
> not against these changes, it just that they'd require a full
> pass over the manual anyway, so that can be done separately.

Sure.

Cheers,
Ralf

        * doc/automake.texi: Fix some typos in the introduction,
        adjust some spacing; spell `GNU Build System' consistently.
        (menu): Unify node naming.
        (Standard Directory Variables): Clarify that this list is not
        exhaustive.
        (DESTDIR): Fix example.

--- doc/automake.texi   2006-08-16 21:10:32.000000000 +0200
+++ doc/automake.texi   2006-08-16 22:13:12.000000000 +0200
@@ -127,13 +127,13 @@
 An Introduction to the Autotools
 
 * GNU Build System::            Introducing the GNU Build System
-* Use Cases::                   Use case for the GNU Build System
+* Use Cases::                   Use Cases for the GNU Build System
 * Why Autotools::               How Autotools Help
 * Hello World::                 A Small Hello World Package
 
 Use Cases for the GNU Build System
 
-* Basic Installation::          Common installtion procedure
+* Basic Installation::          Common installation procedure
 * Standard Targets::            A list of standard Makefile targets
 * Standard Directory Variables::  A list of standard directory variables
 * Standard Configuration Variables::  Using configuration variables
@@ -380,24 +380,24 @@
 If you are new to Automake, maybe you know that it is part of a set of
 tools called @emph{The Autotools}.  Maybe you've already delved into a
 package full of files named @file{configure}, @file{configure.ac},
address@hidden, @file{Makefile.am}, @file{aclocal.m4}, @dots{}
address@hidden, @file{Makefile.am}, @file{aclocal.m4}, @dots{},
 some of them claiming to be @emph{generated by} Autoconf or Automake.
 But the exact purpose of these files and their relations is probably
-fuzzy.  The goal of this chapter is to introduce you this machinery,
+fuzzy.  The goal of this chapter is to introduce you to this machinery,
 to show you how it works and how powerful it is.  If you've never
 installed or seen such a package, do not worry: this chapter will walk
 you through it.
 
 If you need some teaching material, more illustrations, or a less
address@hidden continuation, some slides for this
address@hidden continuation, some slides for this
 introduction are available in Alexandre Duret-Lutz's
address@hidden Turorial,
-http://www-src.lip6.fr/~Alexandre.Duret-Lutz/autotools.html}.
address@hidden Tutorial,
+http://www-src.lip6.fr/@/~Alexandre.Duret-Lutz/@/autotools.html}.
 This chapter is the written version of the first part of his tutorial.
 
 @menu
 * GNU Build System::            Introducing the GNU Build System
-* Use Cases::                   Use case for the GNU Build System
+* Use Cases::                   Use Cases for the GNU Build System
 * Why Autotools::               How Autotools Help
 * Hello World::                 A Small Hello World Package
 @end menu
@@ -406,8 +406,8 @@
 @section Introducing the GNU Build System
 @cindex GNU Build System, introduction
 
-It is a truth universally acknowledged, that a developer in
-possession of a new package, must be in want of a build system.
+It is a truth universally acknowledged that a developer in
+possession of a new package must be in want of a build system.
 
 In the Unix world, such a build system is traditionally achieved using
 the command @command{make} (@pxref{Top, , Overview, make, The GNU Make
@@ -419,12 +419,12 @@
 compiler on @file{main.c}; etc.  Each time @command{make} is run, it
 reads @file{Makefile}, checks the existence and modification time of
 the files mentioned, decides what files need to be built (or rebuilt),
-and run the associated commands.
+and runs the associated commands.
 
 When a package needs to be built on a different platform than the one
 it was developed on, its @file{Makefile} usually needs to be adjusted.
 For instance the compiler may have another name or require more
-options.  In 1991, David J. MacKenzie got tired of customising
+options.  In 1991, David J. MacKenzie got tired of customizing
 @file{Makefile} for the 20 platforms he had to deal with.  Instead, he
 handcrafted a little shell script called @file{configure} to
 automatically adjust the @file{Makefile} (@pxref{Genesis, , Genesis,
@@ -433,7 +433,7 @@
 
 @cindex GNU Coding Standards
 
-Today this process has been standardised in the GNU project.  The GNU
+Today this process has been standardized in the GNU project.  The GNU
 Coding Standards (@pxref{Managing Releases, The Release Process, ,
 standards, The GNU Coding Standards}) explains how each package of the
 GNU project should have a @file{configure} script, and the minimal
@@ -462,7 +462,7 @@
 @cindex GNU Build System, use cases
 @cindex GNU Build System, features
 @cindex Features of the GNU Build System
address@hidden Use cases for the GNU Build System
address@hidden Use Cases for the GNU Build System
 @cindex @file{amhello-1.0.tar.gz}, location
 @cindex @file{amhello-1.0.tar.gz}, use cases
 
@@ -480,14 +480,14 @@
 
 Some of the following use cases present features that are in fact
 extensions to the GNU Build System.  Read: they are not specified by
-the GNU Coding Standard, but they are nonetheless part of the build
-system created by the Autotools.  To keep things simple we do not
+the GNU Coding Standards, but they are nonetheless part of the build
+system created by the Autotools.  To keep things simple, we do not
 point out the difference.  Our objective is to show you many of the
 features that the build system created by the Autotools will offer to
 you.
 
 @menu
-* Basic Installation::          Common installtion procedure
+* Basic Installation::          Common installation procedure
 * Standard Targets::            A list of standard Makefile targets
 * Standard Directory Variables::  A list of standard directory variables
 * Standard Configuration Variables::  Using configuration variables
@@ -540,7 +540,7 @@
 
 The user then enters the newly created directory to run the
 @file{configure} script.  This script probes the system for various
-features, and finally create the @file{Makefile}s.  In this toy
+features, and finally creates the @file{Makefile}s.  In this toy
 example there are only two @file{Makefile}s, but in real-world project
 there may be many more, usually one @file{Makefile} per directory.
 
@@ -558,12 +558,12 @@
 
 @cindex su, before @code{make install}
 After everything has been built, and maybe tested, it is time to
-install them on the system.  That means copying the programs,
+install it on the system.  That means copying the programs,
 libraries, header files, scripts, and other data files from the
 source directory to their final destination on the system.  The
-command @code{make install} will do that.  However by default
+command @code{make install} will do that.  However, by default
 everything will be installed in subdirectories of @file{/usr/local}:
-binaries will go into @file{/usr/local/bin}, libraries will end into
+binaries will go into @file{/usr/local/bin}, libraries will end up in
 @file{/usr/local/lib}, etc.  This destination is usually not writable
 by any user, so we assume that we have to become root before we can
 run @code{make install}.  In our example, running @code{make install}
@@ -572,13 +572,13 @@
 
 A last and optional step is to run @code{make installcheck}.  This
 command may run tests on the installed files.  @code{make check} tests
-the files in the source tree while @code{make installcheck} tests
+the files in the source tree, while @code{make installcheck} tests
 their installed copies.  The tests run by the latter can be different
-from those run by former.  For instance, there are tests that cannot
-be run in the source tree.  Conversely, some packages are set up so
-that @code{make installcheck} will run the very same tests as
+from those run by the former.  For instance, there are tests that
+cannot be run in the source tree.  Conversely, some packages are set
+up so that @code{make installcheck} will run the very same tests as
 @code{make check}, only on different files (non-installed
-vs. installed).  It can make a difference, for instance when the
+vs.@: installed).  It can make a difference, for instance when the
 source tree's layout is different from that of the installation.
 Furthermore it may help to diagnose an incomplete installation.
 
@@ -603,7 +603,7 @@
 @table @code
 @item make all
 @trindex all
-Build programs, libraries, documentation, etc.  (Same as @code{make}.)
+Build programs, libraries, documentation, etc.@: (same as @code{make}).
 @item make install
 @trindex install
 Install what needs to be installed, copying the files from the
@@ -611,7 +611,7 @@
 @item make install-strip
 @trindex install-strip
 Same as @code{make install}, then strip debugging symbols.  Some
-users like to trade space for useful bug reports...
+users like to trade space for useful bug address@hidden
 @item make uninstall
 @trindex uninstall
 The opposite of @code{make install}: erase the installed files.
@@ -639,7 +639,7 @@
 @cindex directory variables
 
 The GNU Coding Standards also specify a hierarchy of variables to
-denote installation directories.
+denote installation directories.  Some of these are:
 
 @multitable {Directory variable} 
address@hidden@code{datarootdir}/doc/@code{PACKAGE}}}
 @headitem Directory variable    @tab Default value
@@ -675,7 +675,7 @@
 
 @opindex --prefix
 
-A user who wish to install a package on his own account could proceed
+A user who wishes to install a package on his own account could proceed
 as follows:
 
 @example
@@ -741,7 +741,7 @@
 @cindex @file{config.site} example
 
 When installing several packages using the same setup, it can be
-convenient to create a @file{config.site} to capture common settings.
+convenient to create a file to capture common settings.
 If a file named @address@hidden/share/config.site} exists,
 @command{configure} will source it at the beginning of its execution.
 
@@ -753,8 +753,8 @@
 @end example
 
 Assuming we are installing many package in @file{~/usr}, and will
-always want to use these definition of @code{CC}, @code{CPPFLAGS}, and
address@hidden, we can automatize this by creating the following
+always want to use these definitions of @code{CC}, @code{CPPFLAGS}, and
address@hidden, we can automate this by creating the following
 @file{~/usr/share/config.site} file:
 
 @example
@@ -763,7 +763,7 @@
 test -z "$LDFLAGS" && LDFLAGS=-L$HOME/usr/lib
 @end example
 
-Now any time a @file{configure} script is using the @file{~/usr}
+Now, any time a @file{configure} script is using the @file{~/usr}
 prefix, it will execute the above @file{config.site} and define
 these three variables.
 
@@ -778,22 +778,22 @@
 
 
 @node VPATH Builds
address@hidden Parallel Build Trees (a.k.a. VPATH Builds)
address@hidden Parallel Build Trees (a.k.a.@: VPATH Builds)
 @cindex Parallel build trees
 @cindex VPATH builds
 @cindex source tree and build tree
 @cindex build tree and source tree
address@hidden trees, source vs. build
address@hidden trees, source vs.@: build
 
 The GNU Build System distinguishes two trees: the source tree, and
 the build tree.
 
 The source tree is rooted in the directory containing
address@hidden it contains all the sources files (those that are
address@hidden  It contains all the sources files (those that are
 distributed), and may be arranged using several subdirectories.
 
-The build tree is rooted in the directory where the @file{configure}
-were run, and is populated with all object files, programs, libraries,
+The build tree is rooted in the directory in which @file{configure}
+was run, and is populated with all object files, programs, libraries,
 and other derived files built from the sources (and hence not
 distributed).  The build tree usually has the same subdirectory layout
 as the source tree; its subdirectories are created automatically by
@@ -801,7 +801,7 @@
 
 If @file{configure} is executed in its own directory, the source and
 build trees are combined: derived files are constructed in the same
-directory as their sources.  This was the case in our first
+directories as their sources.  This was the case in our first
 installation example (@pxref{Basic Installation}).
 
 A common request from users is that they want to confine all derived
@@ -941,7 +941,7 @@
 ...
 @end example
 
-On the second host, however, we need only to install the
+On the second host, however, we need only install the
 architecture-specific files.
 @example
 [HOST2] ~ % @kbd{mkdir /tmp/amh && cd /tmp/amh}
@@ -957,10 +957,10 @@
 
 @node Cross-Compilation
 @subsection Cross-Compilation
address@hidden Cross-compilation
address@hidden cross-compilation
 
 To @dfn{cross-compile} is to build on one platform a binary that will
-be run on another platform.  When speaking of cross-compilation, it is
+run on another platform.  When speaking of cross-compilation, it is
 important to distinguish between the @dfn{build platform} on which
 the compilation is performed, and the @dfn{host platform} on which the
 resulting executable is expected to run.  The following
@@ -976,7 +976,7 @@
 @end table
 
 When the @option{--host} is used, @command{configure} will search for
-the cross-compiling suite for this platform.  cross-compilation tools
+the cross-compiling suite for this platform.  Cross-compilation tools
 commonly have their target architecture as prefix of their name.  For
 instance my cross-compiler for MinGW32 has its binaries called
 @code{i586-mingw32msvc-gcc}, @code{i586-mingw32msvc-ld},
@@ -1039,7 +1039,7 @@
 @cindex Transforming program names
 @cindex Programs, renaming during installation
 
-The GNU build system provides means to automatically rename
+The GNU Build System provides means to automatically rename
 executables before they are installed.  This is especially convenient
 when installing a GNU package on a system that already has a
 proprietary implementation you do not want to overwrite.  For instance,
@@ -1076,10 +1076,10 @@
 @subsection Building Binary Packages Using DESTDIR
 @vindex DESTDIR
 
-The GNU build system's @code{make install} and @code{make uninstall}
+The GNU Build System's @code{make install} and @code{make uninstall}
 interface does not exactly fit the needs of a system administrator
 who has to deploy and upgrade packages on lots of hosts.  In other
-words, the GNU build system does not replace a package manager.
+words, the GNU Build System does not replace a package manager.
 
 Such package managers usually need to know which files have been
 installed by a package, so a mere @code{make install} is
@@ -1109,15 +1109,15 @@
 ~/amhello-1.0 % @kbd{make DESTDIR=$HOME/inst install}
 @dots{}
 ~/amhello-1.0 % @kbd{cd ~/inst}
-~/inst % @kbd{find . -type f -print > files.lst}
-~/inst % @kbd{tar zcvf ~/amhello-1.0-i686.tar.gz `cat file.lst`}
+~/inst % @kbd{find . -type f -print > ../files.lst}
+~/inst % @kbd{tar zcvf ~/amhello-1.0-i686.tar.gz `cat ../file.lst`}
 ./usr/bin/hello
 ./usr/share/doc/amhello/README
 @end example
 
 After this example, @code{amhello-1.0-i686.tar.gz} is ready to be
-uncompressed in @file{/} on many hosts.  (Using @code{`cat file.lst`}
-instead of @samp{.} as argument for @command{tar} avoid entries for
+uncompressed in @file{/} on many hosts.  (Using @code{`cat ../file.lst`}
+instead of @samp{.} as argument for @command{tar} avoids entries for
 each subdirectory in the archive: we would not like @command{tar} to
 restore the modification time of @file{/}, @file{/usr/}, etc.)
 
@@ -1138,7 +1138,7 @@
 @cindex Distributions, preparation
 
 We have already mentioned @code{make dist}.  This target collects all
-your source files, and the necessary parts of the build system, to
+your source files and the necessary parts of the build system to
 create a tarball named @address@hidden@var{version}.tar.gz}.
 
 @cindex @code{distcheck} better than @code{dist}
@@ -1146,7 +1146,7 @@
 Another, more useful command is @code{make distcheck}.  The
 @code{distcheck} target constructs
 @address@hidden@var{version}.tar.gz} just as well as @code{dist},
-but it additionally ensures most of the use-cases presented so far
+but it additionally ensures most of the use cases presented so far
 work:
 
 @itemize @bullet
@@ -1247,7 +1247,7 @@
 been created by Autoconf and friends) can be nested to arbitrary
 depth.
 
-A typical setup is that a package A will distribute one of the library
+A typical setup is that a package A will distribute one of the libraries
 it needs in a subdirectory.  This library B is a complete package with
 its own GNU Build System.  The @command{configure} script of A will
 run the @command{configure} script of B as part of its execution,
@@ -1313,7 +1313,7 @@
 Yet there also exist reasons why you may want NOT to use the
 address@hidden For instance you may be already using (or used to)
 another incompatible build system.  Autotools will only be useful if
-you do accept the concepts of GNU Build System.  People who have their
+you do accept the concepts of the GNU Build System.  People who have their
 own idea of how a build system should work will feel frustrated by the
 Autotools.
 
@@ -1489,7 +1489,7 @@
 creating @file{configure} from @file{configure.ac}, while
 @command{automake} is in charge of creating @file{Makefile.in}s from
 @file{Makefile.am}s and @file{configure.ac}.  This should at least
-direct you to the correct manual when seeking answers.
+direct you to the right manual when seeking answers.
 
 
 @node amhello Explained
@@ -1576,13 +1576,13 @@
 @end smallexample
 
 As you probably noticed, @file{src/main.c} includes @file{config.h} so
-it can use @code{PACKAGE_STRING}.  In a real work project,
+it can use @code{PACKAGE_STRING}.  In a real-world project,
 @file{config.h} can grow really big, with one @samp{#define} per
 feature probed on the system.
 
 The @code{AC_CONFIG_FILES} macro declares the list of files that
address@hidden should create from their @file{*.in} template.
-Automake also scans this list to find the @file{Makefile.am} it must
address@hidden should create from their @file{*.in} templates.
+Automake also scans this list to find the @file{Makefile.am} files it must
 process.  (This is important to remember: when adding a new directory
 to your project, you should add its @file{Makefile} to this list,
 otherwise Automake will never process the new @file{Makefile.am} you
@@ -1618,14 +1618,14 @@
 @command{configure}) but will react to certain variable definitions
 by generating some build rules and other variables.
 Often @file{Makefile.am}s contain only a list of variable definitions as
-above, but it can also contain other variable and rule definitions that
+above, but they can also contain other variable and rule definitions that
 @command{automake} will pass along without interpretation.
 
 Variables that end with @code{_PROGRAMS} are special variables
 that list programs that the resulting @file{Makefile} should build.
 In Automake speak, this @code{_PROGRAMS} suffix is called a
 @dfn{primary}; Automake recognizes other primaries such as
address@hidden, @code{_DATA}, @code{_LIBRARIES}, etc. corresponding
address@hidden, @code{_DATA}, @code{_LIBRARIES}, etc.@: corresponding
 to different types of files.
 
 The @samp{bin} part of the @code{bin_PROGRAMS} tells




reply via email to

[Prev in Thread] Current Thread [Next in Thread]