autoconf-patches
[Top][All Lists]
Advanced

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

Re: VPATH / English / etc updates for Autoconf manual


From: Paul Eggert
Subject: Re: VPATH / English / etc updates for Autoconf manual
Date: Wed, 14 Jun 2006 12:50:37 -0700
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

address@hidden (Eric Blake) writes:

>       * doc/autoconf.texi (The Make Macro MAKEFLAGS): New node.

Thanks.  I tweaked that in minor ways, and also updated the page about
funny chars in macro names, and installed this:

2006-06-14  Paul Eggert  <address@hidden>

        * doc/autoconf.texi (Special Chars in Names):
        Renamed from Leading _ in Macro Names.
        Mention other special chars, too.

2006-06-14  Eric Blake  <address@hidden>

        * doc/autoconf.texi (The Make Macro MAKEFLAGS): New node.

--- doc/autoconf.texi   14 Jun 2006 19:11:43 -0000      1.1045
+++ doc/autoconf.texi   14 Jun 2006 19:46:54 -0000
@@ -484,11 +484,12 @@ Portable Make Programming
 
 * $< in Ordinary Make Rules::   $< in ordinary rules
 * Failure in Make Rules::       Failing portably in rules
-* Leading _ in Macro Names::    $(_FOO) on ancient hosts
+* Special Chars in Names::      $(.FOO), $(_FOO), $(007), etc.
 * Backslash-Newline-Newline::   Empty last lines in macro definitions
 * Backslash-Newline Comments::  Spanning comments across line boundaries
 * Long Lines in Makefiles::     Line length limitations
 * Macros and Submakes::         @code{make macro=value} and submakes
+* The Make Macro MAKEFLAGS::    @code{$(MAKEFLAGS)} portability issues
 * The Make Macro SHELL::        @code{$(SHELL)} portability issues
 * Comments in Make Rules::      Other problems with Make comments
 * obj/ and Make::               Don't name a subdirectory @file{obj}
@@ -13616,11 +13617,12 @@ itself.
 @menu
 * $< in Ordinary Make Rules::   $< in ordinary rules
 * Failure in Make Rules::       Failing portably in rules
-* Leading _ in Macro Names::    $(_FOO) on ancient hosts
+* Special Chars in Names::      $(.FOO), $(_FOO), $(007), etc.
 * Backslash-Newline-Newline::   Empty last lines in macro definitions
 * Backslash-Newline Comments::  Spanning comments across line boundaries
 * Long Lines in Makefiles::     Line length limitations
 * Macros and Submakes::         @code{make macro=value} and submakes
+* The Make Macro MAKEFLAGS::    @code{$(MAKEFLAGS)} portability issues
 * The Make Macro SHELL::        @code{$(SHELL)} portability issues
 * Comments in Make Rules::      Other problems with Make comments
 * obj/ and Make::               Don't name a subdirectory @file{obj}
@@ -13659,8 +13661,13 @@ implementations of the @option{-e} optio
 about porting to buggy BSD shells it may be simpler to migrate
 complicated @command{make} actions into separate scripts.
 
address@hidden Leading _ in Macro Names
address@hidden Leading @samp{_} in Make Macro Names
address@hidden Special Chars in Names
address@hidden Special Characters in Make Macro Names
+
+Posix limits macro names to nonempty strings containing only
address@hidden letters and digits, @samp{.}, and @samp{_}.  Many
address@hidden implementations allow a wider variety of characters, but
+portable makefiles should avoid them.
 
 Some ancient @command{make} implementations don't support leading
 underscores in macro names.  An example is @acronym{NEWS-OS} 4.2R.
@@ -13825,6 +13832,31 @@ two:
 You need to foresee all macros that a user might want to override if
 you do that.
 
address@hidden The Make Macro MAKEFLAGS
address@hidden The Make Macro MAKEFLAGS
address@hidden @code{MAKEFLAGS} and @command{make}
address@hidden @command{make} and @code{MAKEFLAGS}
+
+Posix requires @command{make} to use @code{MAKEFLAGS} to affect the
+current and recursive invocations of make, but allows implementations
+several formats for the variable.  It is tricky to parse
address@hidden to determine whether @option{-s} for silent execution
+or @option{-k} for continued execution are in effect.  For example, you
+cannot assume that the first space-separated word in @code{$MAKEFLAGS}
+contains single-letter options, since in the Cygwin version of
address@hidden @command{make} it is either @option{--unix} or
address@hidden with the second word containing single-letter options.
+
address@hidden
+$ @kbd{cat Makefile}
+all:
+       @@echo MAKEFLAGS = $(MAKEFLAGS)
+$ @kbd{make}
+MAKEFLAGS = --unix
+$ @kbd{make -k}
+MAKEFLAGS = --unix -k
address@hidden example
+
 @node The Make Macro SHELL
 @section The Make Macro @code{SHELL}
 @cindex @code{SHELL} and @command{make}




reply via email to

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