From 28078b517a3151f18cf427be87600803251d732b Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Fri, 4 Mar 2005 12:52:32 +0000 Subject: [PATCH] - Missing docs for $| - Update NEWS and AUTHORS files. - Fix support request #103195. - Apply patch #3679 - Fix handling of sys_siglist in autoconf/etc. --- AUTHORS | 11 +++++++++-- ChangeLog | 18 ++++++++++++++++-- NEWS | 18 ++++++++++++++++-- commands.c | 5 +++++ configure.in | 10 ++++++++-- doc/make.texi | 19 ++++++++++++++----- function.c | 4 ++-- signame.c | 6 +++--- tests/ChangeLog | 4 ++-- 9 files changed, 75 insertions(+), 20 deletions(-) diff --git a/AUTHORS b/AUTHORS index 88d61c3..41f3054 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,6 +6,8 @@ GNU make development up to version 3.75 by: Development starting with GNU make 3.76 by: Paul D. Smith + Additional development starting with GNU make 3.81 by: + Boris Kolpackov GNU Make User's Manual @@ -23,6 +25,7 @@ GNU make porting efforts: Port to VMS by: Klaus Kaempf + Hartmut Becker Archive support/Bug fixes by: John W. Eaton Martin Zinser @@ -30,11 +33,13 @@ GNU make porting efforts: Port to Amiga by: Aaron Digulla - - Port to MS-DOS (DJGPP) and MS-Windows 95/NT by: + Port to MS-DOS (DJGPP), OS/2, and MS-Windows (native/MinGW) by: DJ Delorie Rob Tulloh Eli Zaretskii + Jonathan Grant + Andreas Beuning + Earnie Boyd ----------------------------------- Other contributors: @@ -47,7 +52,9 @@ Other contributors: Jim Kelton David Lubbren Tim Magill + Markus Mauhart Greg McGary + Thomas Riedl Han-Wen Nienhuys Andreas Schwab Carl Staelin (Princeton University) diff --git a/ChangeLog b/ChangeLog index 485fb56..9897a2c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -Thu Mar 3 18:28:15 2005 Boris Kolpackov +2005-03-04 Paul D. Smith + + * AUTHORS: Update. + * doc/make.texi (Automatic Variables): Document $|. + +2005-03-03 Boris Kolpackov * read.c (record_files): Instead of substituting % with actual stem value in dependency list replace it with $*. @@ -11,7 +16,16 @@ Thu Mar 3 18:28:15 2005 Boris Kolpackov in dependency list replace it with $*. This fixes stem triple expansion bug. -Tue Mar 1 10:12:20 2005 Boris Kolpackov +2005-03-01 Paul D. Smith + + * commands.c (fatal_error_signal) [WINDOWS32]: Don't call kill() + on Windows, as it takes a handle not a pid. Just exit. + Fix from patch #3679, provided by Alessandro Vesely. + + * configure.in: Update check for sys_siglist[] from autoconf manual. + * signame.c (strsignal): Update to use the new autoconf macro. + +2005-03-01 Boris Kolpackov * read.c (record_files): Add a check for the list of prerequisites of a static pattern rule being empty. Fixes Savannah bug #12180. diff --git a/NEWS b/NEWS index eb5a226..5b26b3b 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU make NEWS -*-indented-text-*- History of user-visible changes. - 16 February 2005 + 3 March 2005 Copyright (C) 2002,2003,2004,2005 Free Software Foundation, Inc. See the end for copying conditions. @@ -10,12 +10,24 @@ manual, which is contained in this distribution as the file doc/make.texi. See the README file and the GNU make manual for instructions for reporting bugs. -Version 3.81beta2 +Version 3.81beta3 * GNU make is ported to OS/2. * GNU make is ported to MinGW. +* WARNING: Backward-incompatibility! + GNU make now implements a generic "second expansion" feature on the + prerequisites of both explicit and implicit (pattern) targets. After + the rule has been parsed, the prerequisites are expanded a second + time, this time with all the automatic variables in scope. This means + that in addition to using standard SysV $$@ in prerequisites lists, + you can also use complex functions such as $$(patsubst f%r,b%o,$$@) etc. + This behavior applies to implicit rules, as well, where the second + expansion occurs after the rule is matched. + However, this means that you need to double-quote any "$" in your + filenames; instead of "foo: boo$$bar" you must write "foo: foo$$$$bar" + * New command-line option: -L (--check-symlink-times). On systems that support symbolic links, if this option is given then GNU make will use the most recent modification time of any symbolic links that are @@ -41,6 +53,8 @@ Version 3.81beta2 - .DEFAULT_TARGET: Contains the name of the default target make will use if no targets are provided on the command line. It can be set to change the default target. + - New automatic variable: $| (added in 3.80, actually): contains all + the order-only prerequisites defined for the target. * New functions available in this release: - $(lastword ...) returns the last word in the list. This gives diff --git a/commands.c b/commands.c index 97ec981..813610c 100644 --- a/commands.c +++ b/commands.c @@ -481,10 +481,15 @@ fatal_error_signal (int sig) exit (EXIT_FAILURE); #endif +#ifdef WINDOWS32 + /* Cannot call W32_kill with a pid (it needs a handle) */ + exit (EXIT_FAILURE); +#else /* Signal the same code; this time it will really be fatal. The signal will be unblocked when we return and arrive then to kill us. */ if (kill (getpid (), sig) < 0) pfatal_with_name ("kill"); +#endif /* not WINDOWS32 */ #endif /* not Amiga */ #endif /* not __MSDOS__ */ } diff --git a/configure.in b/configure.in index 4bd77ef..4d09f85 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. -AC_INIT([GNU make],[3.81rc1],[bug-make@gnu.org]) +AC_INIT([GNU make],[3.81beta3],[bug-make@gnu.org]) AC_PREREQ(2.59) AC_REVISION([[$Id$]]) @@ -167,7 +167,13 @@ if test "$ac_cv_header_nlist_h" = yes; then fi fi -AC_CHECK_DECLS([sys_siglist]) +AC_CHECK_DECLS([sys_siglist],,, +[#include +/* NetBSD declares sys_siglist in unistd.h. */ +#if HAVE_UNISTD_H +# include +#endif +]) # Check out the wait reality. diff --git a/doc/make.texi b/doc/make.texi index c6f4c1a..0ecd35a 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -5942,10 +5942,11 @@ returns @samp{bar}. @cindex selecting word lists Returns the list of words in @var{text} starting with word @var{s} and ending with word @var{e} (inclusive). The legitimate values of @var{s} -and @var{e} start from 1. If @var{s} is bigger than the number of words -in @var{text}, the value is empty. If @var{e} is bigger than the number -of words in @var{text}, words up to the end of @var{text} are returned. -If @var{s} is greater than @var{e}, nothing is returned. For example, +start from 1; @var{e} may start from 0. If @var{s} is bigger than the +number of words in @var{text}, the value is empty. If @var{e} is +bigger than the number of words in @var{text}, words up to the end of +@var{text} are returned. If @var{s} is greater than @var{e}, nothing +is returned. For example, @example $(wordlist 2, 3, foo bar baz) @@ -8496,7 +8497,9 @@ prerequisites which are archive members, only the member named is used (@pxref{Archives}). A target has only one prerequisite on each other file it depends on, no matter how many times each file is listed as a prerequisite. So if you list a prerequisite more than once for a target, -the value of @code{$^} contains just one copy of the name. +the value of @code{$^} contains just one copy of the name. This list +does @strong{not} contain any of the order-only prerequisites; for those +see the @samp{$|} variable, below. @cindex prerequisites, list of all @cindex list of all prerequisites @@ -8508,6 +8511,12 @@ duplicated in the order they were listed in the makefile. This is primarily useful for use in linking commands where it is meaningful to repeat library file names in a particular order. +@vindex $| +@vindex | @r{(automatic variable)} +@item $| +The names of all the order-only prerequisites, with spaces between +them. + @vindex $* @vindex * @r{(automatic variable)} @item $* diff --git a/function.c b/function.c index c2bd16f..983df74 100644 --- a/function.c +++ b/function.c @@ -772,8 +772,8 @@ func_wordlist (char *o, char **argv, const char *funcname UNUSED) start = atoi (argv[0]); if (start < 1) - fatal (reading_file, "invalid first argument to `wordlist' function: '%d'", - message, start); + fatal (reading_file, + "invalid first argument to `wordlist' function: `%d'", start); count = atoi (argv[1]) - start + 1; diff --git a/signame.c b/signame.c index 432c312..a6c2a38 100644 --- a/signame.c +++ b/signame.c @@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */ Otherwise create our own. */ -#if !defined(SYS_SIGLIST_DECLARED) +#if !defined(HAVE_DECL_SYS_SIGLIST) /* Some systems do not define NSIG in . */ #ifndef NSIG @@ -226,7 +226,7 @@ signame_init (void) return 1; } -#endif /* SYS_SIGLIST_DECLARED */ +#endif /* HAVE_DECL_SYS_SIGLIST */ char * @@ -234,7 +234,7 @@ strsignal (int signal) { static char buf[] = "Signal 12345678901234567890"; -#if !defined(SYS_SIGLIST_DECLARED) +#if !defined(HAVE_DECL_SYS_SIGLIST) static char sig_initted = 0; if (!sig_initted) diff --git a/tests/ChangeLog b/tests/ChangeLog index a371f89..cffcb2d 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,4 +1,4 @@ -Thu Mar 3 18:34:06 2005 Boris Kolpackov +2005-03-03 Boris Kolpackov * scripts/features/se_implicit: Add a test for stem termination bug. Add a test for stem triple-expansion bug. @@ -10,7 +10,7 @@ Thu Mar 3 18:34:06 2005 Boris Kolpackov new way empty prerequisite list is handled. -Tue Mar 1 10:15:25 2005 Boris Kolpackov +2005-03-01 Boris Kolpackov * scripts/features/statipattrules: Add a test for Savannah bug #12180. -- 2.7.4