autoconf-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Autoconf source repository branch, master, updated. v2.62-82-g


From: Eric Blake
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.62-82-g3a28237
Date: Thu, 21 Aug 2008 15:55:12 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=3a28237907c7aec196be301eac65721ff7720b55

The branch, master has been updated
       via  3a28237907c7aec196be301eac65721ff7720b55 (commit)
       via  75388b165e68c977011d5047e6f20ab05de501f3 (commit)
       via  e3dce090c8686a072532c76a014d47639834529a (commit)
      from  96e601a1596f116c52e5d13529850f0d6c61f943 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3a28237907c7aec196be301eac65721ff7720b55
Author: Eric Blake <address@hidden>
Date:   Wed Apr 9 12:14:06 2008 -0600

    Formatting improvements.
    
    * doc/autoconf.texi: Use @file and @command, rather than @code,
    where appropriate.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 75388b165e68c977011d5047e6f20ab05de501f3
Author: Eric Blake <address@hidden>
Date:   Thu Aug 21 09:32:21 2008 -0600

    Document another make bug.
    
    * doc/autoconf.texi (The Make Macro SHELL): Mention bug in BSD
    make, GNU make <= 3.80.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e3dce090c8686a072532c76a014d47639834529a
Author: Eric Blake <address@hidden>
Date:   Wed Apr 9 12:09:45 2008 -0600

    Tweak wording about SHELL in Makefile.
    
    * doc/autoconf.texi (The Make Macro SHELL): Stronger wording on
    the importance of proper SHELL settings.
    Reported by Bruno Haible, in
    http://lists.gnu.org/archive/html/bug-libtool/2008-04/msg00029.html.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog         |   16 ++++++++++
 doc/autoconf.texi |   80 +++++++++++++++++++++++++++++++++++------------------
 2 files changed, 69 insertions(+), 27 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7fdd897..2772edc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2008-08-21  Eric Blake  <address@hidden>
+
+       Formatting improvements.
+       * doc/autoconf.texi: Use @file and @command, rather than @code,
+       where appropriate.
+
+       Document another make bug.
+       * doc/autoconf.texi (The Make Macro SHELL): Mention bug in BSD
+       make, GNU make <= 3.80.
+
+       Tweak wording about SHELL in Makefile.
+       * doc/autoconf.texi (The Make Macro SHELL): Stronger wording on
+       the importance of proper SHELL settings.
+       Reported by Bruno Haible, in
+       http://lists.gnu.org/archive/html/bug-libtool/2008-04/msg00029.html.
+
 2008-08-20  Ralf Wildenhues  <address@hidden>
 
        Avoid timestamp races for updated input.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 865f25b..5742f7e 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -804,15 +804,15 @@ to the quirks of @command{make} on many systems.  On top 
of all this is the
 manual labor required to implement the many standard targets that users
 have come to expect (@code{make install}, @code{make distclean},
 @code{make uninstall}, etc.).  Since you are, of course, using Autoconf,
-you also have to insert repetitive code in your @code{Makefile.in} to
+you also have to insert repetitive code in your @file{Makefile.in} to
 recognize @code{@@CC@@}, @code{@@CFLAGS@@}, and other substitutions
 provided by @command{configure}.  Into this mess steps @dfn{Automake}.
 @cindex Automake
 
-Automake allows you to specify your build needs in a @code{Makefile.am}
+Automake allows you to specify your build needs in a @file{Makefile.am}
 file with a vastly simpler and more powerful syntax than that of a plain
-makefile, and then generates a portable @code{Makefile.in} for
-use with Autoconf.  For example, the @code{Makefile.am} to build and
+makefile, and then generates a portable @file{Makefile.in} for
+use with Autoconf.  For example, the @file{Makefile.am} to build and
 install a simple ``Hello world'' program might look like:
 
 @example
@@ -821,7 +821,7 @@ hello_SOURCES = hello.c
 @end example
 
 @noindent
-The resulting @code{Makefile.in} (~400 lines) automatically supports all
+The resulting @file{Makefile.in} (~400 lines) automatically supports all
 the standard targets, the substitutions provided by Autoconf, automatic
 dependency tracking, @code{VPATH} building, and so on.  @command{make}
 builds the @code{hello} program, and @code{make install} installs it
@@ -1955,7 +1955,7 @@ either absolute or relative to @address@hidden  The 
default is
 @file{install-sh}.  The other files are not checked for, so that using
 @code{AC_PROG_INSTALL} does not automatically require distributing the
 other auxiliary files.  It checks for @file{install.sh} also, but that
-name is obsolete because some @code{make} have a rule that creates
+name is obsolete because some @command{make} have a rule that creates
 @file{install} from it if there is no makefile.
 
 The auxiliary directory is commonly named @file{build-aux}.
@@ -2021,7 +2021,7 @@ are honored.
 
 The location of your @code{AC_OUTPUT} invocation is the exact point
 where configuration actions are taken: any code afterwards is
-executed by @code{configure} once @command{config.status} was run.  If
+executed by @command{configure} once @command{config.status} was run.  If
 you want to bind actions to @command{config.status} itself
 (independently of whether @command{configure} is being run), see
 @ref{Configuration Commands, , Running Arbitrary Configuration
@@ -2034,7 +2034,7 @@ Historically, the usage of @code{AC_OUTPUT} was somewhat 
different.
 
 
 If you run @command{make} in subdirectories, you should run it using the
address@hidden variable @code{MAKE}.  Most versions of @command{make} set
address@hidden variable @code{MAKE}.  Most versions of @command{make} set
 @code{MAKE} to the name of the @command{make} program plus any options it
 was given.  (But many do not include in it the values of any variables
 set on the command line, so those are not passed on automatically.)
@@ -2053,7 +2053,7 @@ Otherwise, define @code{SET_MAKE} to a macro definition 
that sets
 @end defmac
 
 If you use this macro, place a line like this in each @file{Makefile.in}
-that runs @code{MAKE} on other directories:
+that runs @command{MAKE} on other directories:
 
 @example
 @@SET_MAKE@@
@@ -2906,7 +2906,7 @@ variable substitutions on the value of @code{VPATH}.
 @command{configure} substitutes the correct value for @code{srcdir} when
 it produces @file{Makefile}.
 
-Do not use the @code{make} variable @code{$<}, which expands to the
+Do not use the @command{make} variable @code{$<}, which expands to the
 file name of the file in the source directory (found with @code{VPATH}),
 except in implicit rules.  (An implicit rule is one such as @samp{.c.o},
 which tells how to create a @file{.o} file from a @file{.c} file.)  Some
@@ -8749,7 +8749,7 @@ substitution replaces the whole line, including the 
spaces, tabs, and
 the terminating newline.
 
 This macro is useful for inserting makefile fragments containing
-special dependencies or other @code{make} directives for particular host
+special dependencies or other @command{make} directives for particular host
 or target types into makefiles.  For example, @file{configure.ac}
 could contain:
 
@@ -11831,7 +11831,7 @@ Also see the @code{AC_PROG_MKDIR_P} macro 
(@pxref{Particular Programs}).
 
 @defmac AS_SHELL_SANITIZE
 @asindex{SHELL_SANITIZE}
-Initialize the shell suitably for @code{configure} scripts.  This has
+Initialize the shell suitably for @command{configure} scripts.  This has
 the effect of @code{AS_BOURNE_COMPATIBLE}, and sets some other
 environment variables for predictable results from configuration tests.
 For example, it sets @env{LC_ALL} to change to the default C locale.
@@ -14312,7 +14312,7 @@ assume neither behavior is the default.  This can be a 
bit tricky,
 since the Posix default behavior means that, for example,
 @samp{ls ..} and @samp{cd ..} may refer to different directories if
 the current logical directory is a symbolic link.  It is safe to use
address@hidden @var{dir}} if @var{dir} contains no @file{..} components.
address@hidden @var{dir}} if @var{dir} contains no @file{..} components.
 Also, Autoconf-generated scripts check for this problem when computing
 variables like @code{ac_top_srcdir} (@pxref{Configuration Actions}),
 so it is safe to @command{cd} to these variables.
@@ -15086,7 +15086,7 @@ Traditional Awk does not support multidimensional 
arrays or user-defined
 functions.
 
 Traditional Awk does not support the @option{-v} option.  You can use
-assignments after the program instead, e.g., @command{$AWK '@{print v
+assignments after the program instead, e.g., @code{$AWK '@{print v
 address@hidden' v=x}; however, don't forget that such assignments are not
 evaluated until they are encountered (e.g., after any @code{BEGIN}
 action).
@@ -15226,7 +15226,7 @@ newline encoding.
 Avoid the @option{-r} option, since Posix 1003.1-2004 marks it as
 obsolescent and its behavior on special files is implementation-defined.
 Use @option{-R} instead.  On @acronym{GNU} hosts the two options
-are equivalent, but on Solaris hosts (for example) @command{cp -r}
+are equivalent, but on Solaris hosts (for example) @code{cp -r}
 reads from pipes instead of replicating them.
 
 Some @command{cp} implementations (e.g., @acronym{BSD/OS} 4.2) do not allow
@@ -16327,13 +16327,22 @@ your makefiles.  If you use Autoconf, do
 SHELL = @@SHELL@@
 @end example
 
address@hidden
+If you use Automake, this is done for you.
+
 Do not force @code{SHELL = /bin/sh} because that is not correct
-everywhere.  For instance @acronym{DJGPP} lacks @code{/bin/sh}, and when
-its @acronym{GNU} @code{make} port sees such a setting it enters a special
-emulation mode where features like pipes and redirections are emulated
-on top of DOS's @command{command.com}.  Unfortunately this emulation is
-incomplete; for instance it does not handle command substitutions.
-On @acronym{DJGPP} @code{SHELL} should point to Bash.
+everywhere.  Remember, @file{/bin/sh} is not Posix compliant on many
+systems, such as FreeBSD 4, NetBSD 3, AIX 3, Solaris 10, or Tru64.
+Additionally, @acronym{DJGPP} lacks @code{/bin/sh}, and when its
address@hidden @command{make} port sees such a setting it enters a
+special emulation mode where features like pipes and redirections are
+emulated on top of DOS's @command{command.com}.  Unfortunately this
+emulation is incomplete; for instance it does not handle command
+substitutions.  Using @code{@@SHELL@@} means that your makefile will
+benefit from the same improved shell, such as @command{bash} or
address@hidden, that was discovered during @command{configure}, so that
+you aren't fighting two different sets of shell bugs between the two
+contexts.
 
 Posix-compliant @command{make} should never acquire the value of
 $(SHELL) from the environment, even when @code{make -e} is used
@@ -16359,6 +16368,23 @@ $ @kbd{env SHELL=/bin/tcsh FOO=bar gmake -e}  # GNU 
make
 bar
 @end example
 
+Conversely, @command{make} is not supposed to export any changes to the
+macro @code{SHELL} to child processes.  Again, many implementations
+break this rule:
+
address@hidden
+$ @kbd{cat Makefile}
+all:
+        @@echo $(SHELL)
+        @@printenv SHELL
+$ @kbd{env SHELL=sh make -e SHELL=/bin/ksh}   # BSD Make, GNU make 3.80
+/bin/ksh
+/bin/ksh
+$ @kbd{env SHELL=sh gmake -e SHELL=/bin/ksh}  # GNU make 3.81
+/bin/ksh
+sh
address@hidden example
+
 @node Comments in Make Rules
 @section Comments in Make Rules
 @cindex Comments in @file{Makefile} rules
@@ -18235,8 +18261,8 @@ Even a warning message is undesirable here, so 
@code{AC_CONFIG_SUBDIRS}
 automatically disables the warnings.
 
 This default behavior may be modified in two ways.  First, the installer
-can invoke @command{configure --disable-option-checking} to disable
-these warnings, or invoke @command{configure --enable-option-checking=fatal}
+can invoke @code{configure --disable-option-checking} to disable
+these warnings, or invoke @code{configure --enable-option-checking=fatal}
 options to turn them into fatal errors, respectively.  Second, the
 maintainer can use @code{AC_DISABLE_OPTION_CHECKING}.
 
@@ -18488,7 +18514,7 @@ Another use of @file{config.site} is for priming the 
directory variables
 in a manner consistent with the Filesystem Hierarchy Standard
 (@acronym{FHS}).  Once the following file is installed at
 @file{/usr/share/config.site}, a user can execute simply
address@hidden/configure --prefix=/usr} to get all the directories chosen in
address@hidden/configure --prefix=/usr} to get all the directories chosen in
 the locations recommended by @acronym{FHS}.
 
 @example
@@ -18738,7 +18764,7 @@ Makefile: Makefile.in config.status
 
 @noindent
 (If @file{configure.ac} does not call @code{AC_CONFIG_HEADERS}, there is
-no need to set @code{CONFIG_HEADERS} in the @code{make} rules.  Equally
+no need to set @code{CONFIG_HEADERS} in the @command{make} rules.  Equally
 for @code{CONFIG_COMMANDS}, etc.)
 
 
@@ -19967,7 +19993,7 @@ in a particular package's source directory), you must 
rename it to
 @file{acsite.m4}.  @xref{autoconf Invocation}.
 
 If you distribute @file{install.sh} with your package, rename it to
address@hidden so @code{make} builtin rules don't inadvertently
address@hidden so @command{make} builtin rules don't inadvertently
 create a file called @file{install} from it.  @code{AC_PROG_INSTALL}
 looks for the script under both names, but it is best to use the new name.
 
@@ -21440,7 +21466,7 @@ result, incompatibilities between headers went 
unnoticed during
 configuration, and maintainers finally had to deal with this issue
 elsewhere.
 
-As of Autoconf 2.56 both checks are performed, and @code{configure}
+As of Autoconf 2.56 both checks are performed, and @command{configure}
 complains loudly if the compiler and the preprocessor do not agree.
 For the time being the result used is that of the preprocessor, to give
 maintainers time to adjust their @file{configure.ac}, but in the


hooks/post-receive
--
GNU Autoconf source repository




reply via email to

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