Release GNU make 3.81.

Update NEWS docs.
Enhance the manual to use automake version.texi, and use the canonical
FSF copyright features and statement.
Some $(realpath ...) tests won't work on Windows; leave them out
The jobserver filedescriptor test might fail if some FDs are reserved,
so for now comment out that check.
This commit is contained in:
Paul Smith 2006-04-01 06:36:40 +00:00
parent 367a49591e
commit a8f101d0bc
16 changed files with 170 additions and 128 deletions

View File

@ -30,3 +30,5 @@ hp700 hp834 mips sol2 i486-linux
customs customs
install-sh mkinstalldirs install-sh mkinstalldirs
.directive.asc

View File

@ -1,3 +1,39 @@
2006-04-01 Paul D. Smith <psmith@gnu.org>
Version 3.81 released.
* NEWS: Updated for 3.81.
* README.cvs: Mention that vpath builds are not supported out of
CVS. Fixes Savannah bug #16236.
Remove update of make.texi from the list of things to do; we use
version.texi now.
2006-03-26 Paul D. Smith <psmith@gnu.org>
* doc/make.texi: Clean up licensing. Use @copying and version.texi
support from automake, as described in the Texinfo manual.
2006-03-25 Eli Zaretskii <eliz@gnu.org>
* implicit.c (pattern_search) [HAVE_DOS_PATHS]: Don't compare b
with lastslash, since the latter points to filename, not to
target.
* job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]:
Declare and define sh_chars_sh[].
2006-03-23 Paul D. Smith <psmith@gnu.org>
* configure.in: Look for build.sh.in in $srcdir so it will be
built for remote configurations as well.
* Makefile.am: Make sure to clean up build.sh during distclean.
Fixes Savannah bug #16166.
* misc.c (log_access): Takes a const char *.
* function.c (fold_newlines): Takes an unsigned int *.
Both fixes for Savannah bug #16170.
2006-03-22 Boris Kolpackov <boris@kolpackov.net> 2006-03-22 Boris Kolpackov <boris@kolpackov.net>
* implicit.c (pattern_search): Call set_file_variables only * implicit.c (pattern_search): Call set_file_variables only

View File

@ -19,6 +19,8 @@
AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr
ACLOCAL_AMFLAGS = -I config ACLOCAL_AMFLAGS = -I config
MAKE_HOST = @MAKE_HOST@
# Only process if target is MS-Windows # Only process if target is MS-Windows
if WINDOWSENV if WINDOWSENV
MAYBE_W32 = w32 MAYBE_W32 = w32
@ -65,9 +67,6 @@ endif
# Extra stuff to include in the distribution. # Extra stuff to include in the distribution.
# Note we need all the glob stuff here, rather than in glob/Makefile.am,
# because often that directory isn't built on the systems used by the
# maintainers.
EXTRA_DIST = README build.sh.in $(man_MANS) \ EXTRA_DIST = README build.sh.in $(man_MANS) \
README.customs README.OS2 \ README.customs README.OS2 \
@ -79,8 +78,9 @@ EXTRA_DIST = README build.sh.in $(man_MANS) \
readme.vms makefile.vms makefile.com config.h-vms \ readme.vms makefile.vms makefile.com config.h-vms \
vmsdir.h vmsfunctions.c vmsify.c vmsdir.h vmsfunctions.c vmsify.c
MAKE_HOST = @MAKE_HOST@ # This is built during configure, but behind configure's back
DISTCLEANFILES = build.sh
# Forward targets # Forward targets

6
NEWS
View File

@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*- GNU make NEWS -*-indented-text-*-
History of user-visible changes. History of user-visible changes.
19 March 2006 1 April 2006
See the end of this file for copyrights and conditions. See the end of this file for copyrights and conditions.
@ -9,7 +9,7 @@ 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 See the README file and the GNU make manual for instructions for
reporting bugs. reporting bugs.
Version 3.81rc2 Version 3.81
* GNU make is ported to OS/2. * GNU make is ported to OS/2.
@ -147,7 +147,7 @@ Version 3.81rc2
A complete list of bugs fixed in this version is available here: A complete list of bugs fixed in this version is available here:
http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101 http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=103
Version 3.80 Version 3.80

View File

@ -45,6 +45,11 @@ Gettext, and any tools that those utilities require (GNU m4, Perl,
etc.). See the configure.in file to find the minimum versions of each etc.). See the configure.in file to find the minimum versions of each
of these tools. You will also need a copy of wget. of these tools. You will also need a copy of wget.
When building from CVS you must build in the source directory: "VPATH
builds" from remote directories are not supported. Once you've created
a distribution, of course, you can unpack it and do a VPATH build from
there.
After checking out the code, you will need to perform these steps to get After checking out the code, you will need to perform these steps to get
to the point where you can run "make". to the point where you can run "make".
@ -127,8 +132,6 @@ before making an official release:
* Update the configure.in file with the new release number. * Update the configure.in file with the new release number.
* Update the NEWS file with the release number and date. * Update the NEWS file with the release number and date.
* Update the doc/make.texi file with the release number and date.
Check the variables EDITION, VERSION, UPDATED, and UPDATE-MONTH.
* Create the new release in the Savannah "Bugs" Administration for * Create the new release in the Savannah "Bugs" Administration for
both the "Component Version" and "Fixed Release" fields. both the "Component Version" and "Fixed Release" fields.
* Create the new release in the Savannah "Patches" Administration for * Create the new release in the Savannah "Patches" Administration for
@ -169,8 +172,11 @@ It will ask for the GPG passphrase _THREE_ times. Sigh.
Where to Announce Where to Announce
----------------- -----------------
Create the announcement in a text file, then sign it with GPG. Upload Create the announcement in a text file, then sign it with GPG.
to gnu.org, then login and send from my account there.
gpg --clearsign <announcement.txt>
Upload to gnu.org, then login and send from my account there.
Email to: make-alpha@gnu.org, bug-make@gnu.org, help-make@gnu.org, make-w32@gnu.org. Email to: make-alpha@gnu.org, bug-make@gnu.org, help-make@gnu.org, make-w32@gnu.org.
Email to: info-gnu@gnu.org Email to: info-gnu@gnu.org

View File

@ -469,13 +469,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */
* Define if you have the Cygnus "Cygwin" GNU Windows32 tool set. * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set.
* Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL
*/ */
/*#define HAVE_CYGWIN_SHELL*/ /*#define HAVE_CYGWIN_SHELL 1 */
/* /*
* Define if you have the MKS tool set or shell. Do NOT define * Define if you have the MKS tool set or shell. Do NOT define
* BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL
*/ */
/*#define HAVE_MKS_SHELL */ /*#define HAVE_MKS_SHELL 1 */
/* /*
* Enforce the mutual exclusivity restriction. * Enforce the mutual exclusivity restriction.

View File

@ -2,5 +2,6 @@
config.* config.*
mkinstalldirs mkinstalldirs
texinfo.tex texinfo.tex
mdate-sh
Makefile Makefile.in Makefile Makefile.in

View File

@ -16,7 +16,7 @@
# GNU Make; see the file COPYING. If not, write to the Free Software # GNU Make; see the file COPYING. If not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
AC_INIT([GNU make],[3.81rc2],[bug-make@gnu.org]) AC_INIT([GNU make],[3.81],[bug-make@gnu.org])
AC_PREREQ(2.59) AC_PREREQ(2.59)
AC_REVISION([[$Id$]]) AC_REVISION([[$Id$]])
@ -450,7 +450,7 @@ AC_OUTPUT
# We only generate the build.sh if we have a build.sh.in; we won't have # We only generate the build.sh if we have a build.sh.in; we won't have
# one before we've created a distribution. # one before we've created a distribution.
if test -f build.sh.in; then if test -f "$srcdir/build.sh.in"; then
./config.status --file build.sh ./config.status --file build.sh
chmod +x build.sh chmod +x build.sh
fi fi

View File

@ -1,7 +1,8 @@
Makefile Makefile.in Makefile Makefile.in
fdl.texi make-stds.texi texinfo.tex version.texi fdl.texi make-stds.texi texinfo.tex
make.info* make.info*
make*.html make*.html
make.aux make.cp make.cps make.fn make.fns make.ky make.aux make.cp make.cps make.fn make.fns make.ky
make.pg make.toc make.tp make.vr make.log make.pg make.toc make.tp make.vr make.log
make.dvi make.ps make.pdf make.dvi make.ps make.pdf
stamp-vti

View File

@ -1,55 +1,60 @@
\input texinfo @c -*- Texinfo -*- \input texinfo @c -*- Texinfo -*-
@c %**start of header @c %**start of header
@setfilename make.info @setfilename make.info
@include version.texi
@set EDITION 0.70
@set RCSID $Id$
@settitle GNU @code{make} @settitle GNU @code{make}
@setchapternewpage odd @setchapternewpage odd
@c %**end of header @c Combine the variable and function indices:
@syncodeindex vr fn
@c Combine the program and concept indices:
@syncodeindex pg cp
@c FSF publishers: format makebook.texi instead of using this file directly. @c FSF publishers: format makebook.texi instead of using this file directly.
@set RCSID $Id$
@set EDITION 0.70
@set VERSION 3.81
@set UPDATED 5 Feb 2006
@set UPDATE-MONTH Feb 2006
@c ISBN provided by Lisa M. Opus Goldstein <opus@gnu.org>, 5 May 2004 @c ISBN provided by Lisa M. Opus Goldstein <opus@gnu.org>, 5 May 2004
@set ISBN 1-882114-83-5 @set ISBN 1-882114-83-5
@c %**end of header
@copying
This file documents the GNU @code{make} utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}.
Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the
license is included in the section entitled ``GNU Free Documentation
License.''
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
this GNU Manual, like GNU software. Copies published by the Free
Software Foundation raise funds for GNU development.''
@end quotation
@end copying
@c finalout @c finalout
@c ISPELL CHECK: done, 10 June 1993 --roland @c ISPELL CHECK: done, 10 June 1993 --roland
@c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz @c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
@c Combine the variable and function indices:
@syncodeindex vr fn
@c Combine the program and concept indices:
@syncodeindex pg cp
@dircategory GNU Packages @dircategory GNU Packages
@direntry @direntry
* Make: (make). Remake files automatically. * Make: (make). Remake files automatically.
@end direntry @end direntry
@ifnottex
This file documents the GNU Make utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Make Manual}, for @code{make}, Version @value{VERSION}.
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end ifnottex
@iftex @iftex
@shorttitlepage GNU Make @shorttitlepage GNU Make
@end iftex @end iftex
@ -57,52 +62,28 @@ Texts. A copy of the license is included in the section entitled
@title GNU Make @title GNU Make
@subtitle A Program for Directing Recompilation @subtitle A Program for Directing Recompilation
@subtitle GNU @code{make} Version @value{VERSION} @subtitle GNU @code{make} Version @value{VERSION}
@subtitle @value{UPDATE-MONTH} @subtitle @value{UPDATED-MONTH}
@author Richard M. Stallman, Roland McGrath, Paul D. Smith @author Richard M. Stallman, Roland McGrath, Paul D. Smith
@page @page
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, @insertcopying
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
@sp 2 @sp 2
Published by the Free Software Foundation @* Published by the Free Software Foundation @*
51 Franklin St. -- Fifth Floor @* 51 Franklin St. -- Fifth Floor @*
Boston, MA 02110-1301 USA @* Boston, MA 02110-1301 USA @*
ISBN @value{ISBN} @* ISBN @value{ISBN} @*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'', the Front-Cover
Texts being ``A GNU Manual'', and with the Back-Cover Texts being as in
(a) below. A copy of the license is included in the section entitled
``GNU Free Documentation License''.
(a) The FSF's Back-Cover Text is:
@quotation
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.
@end quotation
@sp 2 @sp 2
Cover art by Etienne Suvasa. Cover art by Etienne Suvasa.
@end titlepage @end titlepage
@page
@summarycontents
@contents
@ifnottex @ifnottex
@node Top, Overview, (dir), (dir) @node Top, Overview, (dir), (dir)
@top Make @top GNU @code{make}
The GNU @code{make} utility automatically determines which pieces of a @insertcopying
large program need to be recompiled, and issues the commands to
recompile them.@refill
This edition of the @cite{GNU Make Manual},
last updated @value{UPDATED},
documents GNU @code{make} Version @value{VERSION}.@refill
This manual describes @code{make} and contains the following chapters:@refill
@end ifnottex @end ifnottex
@menu @menu
@ -11120,6 +11101,4 @@ tar.zoo: $(SRCS) $(AUX)
@printindex fn @printindex fn
@summarycontents
@contents
@bye @bye

View File

@ -1390,8 +1390,8 @@ func_value (char *o, char **argv, const char *funcname UNUSED)
/* /*
\r is replaced on UNIX as well. Is this desirable? \r is replaced on UNIX as well. Is this desirable?
*/ */
void static void
fold_newlines (char *buffer, int *length) fold_newlines (char *buffer, unsigned int *length)
{ {
char *dst = buffer; char *dst = buffer;
char *src = buffer; char *src = buffer;
@ -1578,7 +1578,6 @@ static char *
func_shell (char *o, char **argv, const char *funcname UNUSED) func_shell (char *o, char **argv, const char *funcname UNUSED)
{ {
char* batch_filename = NULL; char* batch_filename = NULL;
unsigned int i;
#ifdef __MSDOS__ #ifdef __MSDOS__
FILE *fpipe; FILE *fpipe;
@ -1672,9 +1671,8 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
#endif #endif
{ {
/* We are the parent. */ /* We are the parent. */
char *buffer; char *buffer;
unsigned int maxlen; unsigned int maxlen, i;
int cc; int cc;
/* Record the PID for reap_children. */ /* Record the PID for reap_children. */
@ -1737,17 +1735,15 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
if (shell_function_completed == -1) if (shell_function_completed == -1)
{ {
/* This most likely means that the execvp failed, /* This likely means that the execvp failed, so we should just
so we should just write out the error message write the error message in the pipe from the child. */
that came in over the pipe from the child. */
fputs (buffer, stderr); fputs (buffer, stderr);
fflush (stderr); fflush (stderr);
} }
else else
{ {
/* The child finished normally. Replace all /* The child finished normally. Replace all newlines in its output
newlines in its output with spaces, and put with spaces, and put that in the variable output buffer. */
that in the variable output buffer. */
fold_newlines (buffer, &i); fold_newlines (buffer, &i);
o = variable_buffer_output (o, buffer, i); o = variable_buffer_output (o, buffer, i);
} }
@ -1779,8 +1775,8 @@ func_shell (char *o, char **argv, const char *funcname)
BPTR child_stdout; BPTR child_stdout;
char tmp_output[FILENAME_MAX]; char tmp_output[FILENAME_MAX];
unsigned int maxlen = 200; unsigned int maxlen = 200, i;
int cc, i; int cc;
char * buffer, * ptr; char * buffer, * ptr;
char ** aptr; char ** aptr;
int len = 0; int len = 0;

View File

@ -356,9 +356,8 @@ pattern_search (struct file *file, int archive,
/* Didn't find it yet: check for DOS-type directories. */ /* Didn't find it yet: check for DOS-type directories. */
if (check_lastslash) if (check_lastslash)
{ {
char *b = strrchr (target, '\\'); char *b = strchr (target, '\\');
check_lastslash = !(b ? b > lastslash check_lastslash = !(b || (target[0] && target[1] == ':'));
: (target[0] && target[1] == ':'));
} }
#endif #endif
#endif #endif

2
misc.c
View File

@ -634,7 +634,7 @@ static enum { make, user } current_access;
/* Under -d, write a message describing the current IDs. */ /* Under -d, write a message describing the current IDs. */
static void static void
log_access (char *flavor) log_access (const char *flavor)
{ {
if (! ISDB (DB_JOBS)) if (! ISDB (DB_JOBS))
return; return;

View File

@ -1,3 +1,8 @@
2006-04-01 Paul D. Smith <psmith@gnu.org>
* scripts/functions/realpath: Don't run tests with multiple
initial slashes on Windows: those paths mean something different.
2006-03-19 Paul D. Smith <psmith@gnu.org> 2006-03-19 Paul D. Smith <psmith@gnu.org>
* scripts/features/parallelism: Test that the jobserver is * scripts/features/parallelism: Test that the jobserver is

View File

@ -128,31 +128,37 @@ mod_a.o mod_b.o:
# Make sure that all jobserver FDs are closed if we need to re-exec the # Make sure that all jobserver FDs are closed if we need to re-exec the
# master copy. # master copy.
#
# First, find the "default" file descriptors we normally use
# Then make sure they're still used.
#
# Right now we don't have a way to run a makefile and capture the output
# without checking it, so we can't really write this test.
run_make_test(' # run_make_test('
submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5>output # submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5>output
dependfile: ; @echo FOO=bar > $@ # dependfile: ; @echo FOO=bar > $@
INCL := true # INCL := true
FOO=foo # FOO=foo
ifeq ($(INCL),true) # ifeq ($(INCL),true)
-include dependfile # -include dependfile
endif # endif
fdprint: ; @echo hi >&5 && echo "$(FOO)" # fdprint: ; @echo $(filter --jobserver%,$(MAKEFLAGS))
recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true', # recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true',
'-j2', # '-j2 INCL=false fdprint',
'bar'); # 'bar');
unlink('dependfile', 'output'); # unlink('dependfile', 'output');
# Do it again, this time where the include is done by the non-master make. # # Do it again, this time where the include is done by the non-master make.
run_make_test(undef, '-j2 recurse INCL=false', 'bar'); # run_make_test(undef, '-j2 recurse INCL=false', 'bar');
unlink('dependfile', 'output'); # unlink('dependfile', 'output');
1; 1;

View File

@ -20,18 +20,10 @@ ifneq ($(realpath /),/)
$(error ) $(error )
endif endif
ifneq ($(realpath ///),/)
$(error )
endif
ifneq ($(realpath /.),/) ifneq ($(realpath /.),/)
$(error ) $(error )
endif endif
ifneq ($(realpath ///.),/)
$(error )
endif
ifneq ($(realpath /./),/) ifneq ($(realpath /./),/)
$(error ) $(error )
endif endif
@ -44,10 +36,6 @@ ifneq ($(realpath /..),/)
$(error ) $(error )
endif endif
ifneq ($(realpath ///..),/)
$(error )
endif
ifneq ($(realpath /../),/) ifneq ($(realpath /../),/)
$(error ) $(error )
endif endif
@ -63,8 +51,31 @@ endif
.PHONY: all .PHONY: all
all: ; @: all: ; @:
', ',
'', '',
''); '');
# On Windows platforms, "//" means something special. So, don't do these
# tests there.
if ($port_type ne 'W32') {
run_make_test('
ifneq ($(realpath ///),/)
$(error )
endif
ifneq ($(realpath ///.),/)
$(error )
endif
ifneq ($(realpath ///..),/)
$(error )
endif
.PHONY: all
all: ; @:',
'',
'');
}
# This tells the test driver that the perl test script executed properly. # This tells the test driver that the perl test script executed properly.