<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -30,3 +30,5 @@ hp700 hp834 mips sol2 i486-linux
 customs
 
 install-sh mkinstalldirs
+
+.directive.asc</diff>
      <filename>.cvsignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,39 @@
+2006-04-01  Paul D. Smith  &lt;psmith@gnu.org&gt;
+
+	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  &lt;psmith@gnu.org&gt;
+
+	* 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  &lt;eliz@gnu.org&gt;
+
+	* 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  &lt;psmith@gnu.org&gt;
+
+	* 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  &lt;boris@kolpackov.net&gt;
 
 	* implicit.c (pattern_search): Call set_file_variables only</diff>
      <filename>ChangeLog</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,8 @@
 AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr
 ACLOCAL_AMFLAGS	=  -I config
 
+MAKE_HOST =	@MAKE_HOST@
+
 # Only process if target is MS-Windows
 if WINDOWSENV
   MAYBE_W32 =	w32
@@ -65,9 +67,6 @@ endif
 
 
 # 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) \
 		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 \
 		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
 </diff>
      <filename>Makefile.am</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 GNU make NEWS                                               -*-indented-text-*-
   History of user-visible changes.
-  19 March 2006
+  1 April 2006
 
 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
 reporting bugs.
 *
-Version 3.81rc2
+Version 3.81
 
 * 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:
 
-  http://savannah.gnu.org/bugs/index.php?group=make&amp;report_id=111&amp;fix_release_id=101
+  http://savannah.gnu.org/bugs/index.php?group=make&amp;report_id=111&amp;fix_release_id=103
 
 *
 Version 3.80</diff>
      <filename>NEWS</filename>
    </modified>
    <modified>
      <diff>@@ -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
 of these tools.  You will also need a copy of wget.
 
+When building from CVS you must build in the source directory: &quot;VPATH
+builds&quot; 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
 to the point where you can run &quot;make&quot;.
 
@@ -127,8 +132,6 @@ before making an official release:
 
   * Update the configure.in file with the new release number.
   * 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 &quot;Bugs&quot; Administration for
     both the &quot;Component Version&quot; and &quot;Fixed Release&quot; fields.
   * Create the new release in the Savannah &quot;Patches&quot; Administration for
@@ -169,8 +172,11 @@ It will ask for the GPG passphrase _THREE_ times.  Sigh.
 Where to Announce
 -----------------
 
-Create the announcement in a text file, then sign it with GPG.  Upload
-to gnu.org, then login and send from my account there.
+Create the announcement in a text file, then sign it with GPG.
+
+  gpg --clearsign &lt;announcement.txt&gt;
+
+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: info-gnu@gnu.org</diff>
      <filename>README.cvs</filename>
    </modified>
    <modified>
      <diff>@@ -469,13 +469,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
  * Define if you have the Cygnus &quot;Cygwin&quot; GNU Windows32 tool set.
  * 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
  * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL
  */
-/*#define HAVE_MKS_SHELL */
+/*#define HAVE_MKS_SHELL 1 */
 
 /*
  * Enforce the mutual exclusivity restriction.</diff>
      <filename>config.h.W32.template</filename>
    </modified>
    <modified>
      <diff>@@ -2,5 +2,6 @@
 config.*
 mkinstalldirs
 texinfo.tex
+mdate-sh
 
 Makefile Makefile.in</diff>
      <filename>config/.cvsignore</filename>
    </modified>
    <modified>
      <diff>@@ -16,10 +16,10 @@
 # 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.
 
-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_REVISION([[$Id: configure.in,v 1.141 2006/03/10 02:20:45 psmith Exp $]])
+AC_REVISION([[$Id: configure.in,v 1.142 2006/04/01 06:36:40 psmith Exp $]])
 
 # Autoconf setup
 AC_CONFIG_AUX_DIR(config)
@@ -450,7 +450,7 @@ AC_OUTPUT
 
 # We only generate the build.sh if we have a build.sh.in; we won't have
 # one before we've created a distribution.
-if test -f build.sh.in; then
+if test -f &quot;$srcdir/build.sh.in&quot;; then
   ./config.status --file build.sh
   chmod +x build.sh
 fi</diff>
      <filename>configure.in</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,8 @@
 Makefile Makefile.in
-fdl.texi make-stds.texi texinfo.tex
+version.texi fdl.texi make-stds.texi texinfo.tex
 make.info*
 make*.html
 make.aux make.cp make.cps make.fn make.fns make.ky
 make.pg make.toc make.tp make.vr make.log
 make.dvi make.ps make.pdf
+stamp-vti</diff>
      <filename>doc/.cvsignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,54 +1,59 @@
 \input texinfo                @c -*- Texinfo -*-
 @c %**start of header
 @setfilename make.info
-@settitle GNU @code{make}
-@setchapternewpage odd
-@c %**end of header
 
-@c FSF publishers: format makebook.texi instead of using this file directly.
-
-@set RCSID $Id: make.texi,v 1.44 2006/02/14 15:42:18 psmith Exp $
+@include version.texi
 @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 &lt;opus@gnu.org&gt;, 5 May 2004
-@set ISBN 1-882114-83-5
-
-@c finalout
-
-@c ISPELL CHECK: done, 10 June 1993 --roland
-@c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
+@set RCSID $Id: make.texi,v 1.45 2006/04/01 06:36:40 psmith Exp $
 
+@settitle GNU @code{make}
+@setchapternewpage odd
 @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 ISBN provided by Lisa M. Opus Goldstein &lt;opus@gnu.org&gt;, 5 May 2004
+@set ISBN 1-882114-83-5
+@c %**end of header
 
-@dircategory GNU Packages
-@direntry
-* Make: (make).            Remake files automatically.
-@end direntry
-
-@ifnottex
-This file documents the GNU Make utility, which determines
+@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 @code{make}, Version @value{VERSION}.
+of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}.
 
-Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+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.1 or
+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 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
+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 ISPELL CHECK: done, 10 June 1993 --roland
+@c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
+
+
+@dircategory GNU Packages
+@direntry
+* Make: (make).            Remake files automatically.
+@end direntry
 
 @iftex
 @shorttitlepage GNU Make
@@ -57,52 +62,28 @@ Texts.  A copy of the license is included in the section entitled
 @title GNU Make
 @subtitle A Program for Directing Recompilation
 @subtitle GNU @code{make} Version @value{VERSION}
-@subtitle @value{UPDATE-MONTH}
+@subtitle @value{UPDATED-MONTH}
 @author Richard M. Stallman, Roland McGrath, Paul D. Smith
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-Free Software Foundation, Inc.
+@insertcopying
 @sp 2
 Published by the Free Software Foundation @*
 51 Franklin St. -- Fifth Floor @*
 Boston, MA 02110-1301 USA @*
 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
 Cover art by Etienne Suvasa.
 @end titlepage
-@page
+
+@summarycontents
+@contents
 
 @ifnottex
 @node Top, Overview, (dir), (dir)
-@top Make
-
-The GNU @code{make} utility automatically determines which pieces of a
-large program need to be recompiled, and issues the commands to
-recompile them.@refill
+@top GNU @code{make}
 
-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
+@insertcopying
 @end ifnottex
 
 @menu
@@ -11120,6 +11101,4 @@ tar.zoo: $(SRCS) $(AUX)
 
 @printindex fn
 
-@summarycontents
-@contents
 @bye</diff>
      <filename>doc/make.texi</filename>
    </modified>
    <modified>
      <diff>@@ -1390,8 +1390,8 @@ func_value (char *o, char **argv, const char *funcname UNUSED)
 /*
   \r  is replaced on UNIX as well. Is this desirable?
  */
-void
-fold_newlines (char *buffer, int *length)
+static void
+fold_newlines (char *buffer, unsigned int *length)
 {
   char *dst = buffer;
   char *src = buffer;
@@ -1578,7 +1578,6 @@ static char *
 func_shell (char *o, char **argv, const char *funcname UNUSED)
 {
   char* batch_filename = NULL;
-  unsigned int i;
 
 #ifdef __MSDOS__
   FILE *fpipe;
@@ -1672,9 +1671,8 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
 #endif
     {
       /* We are the parent.  */
-
       char *buffer;
-      unsigned int maxlen;
+      unsigned int maxlen, i;
       int cc;
 
       /* 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)
 	{
-	  /* This most likely means that the execvp failed,
-	     so we should just write out the error message
-	     that came in over the pipe from the child.  */
+	  /* This likely means that the execvp failed, so we should just
+	     write the error message in the pipe from the child.  */
 	  fputs (buffer, stderr);
 	  fflush (stderr);
 	}
       else
 	{
-	  /* The child finished normally.  Replace all
-	     newlines in its output with spaces, and put
-	     that in the variable output buffer.  */
+	  /* The child finished normally.  Replace all newlines in its output
+	     with spaces, and put that in the variable output buffer.  */
 	  fold_newlines (buffer, &amp;i);
 	  o = variable_buffer_output (o, buffer, i);
 	}
@@ -1779,8 +1775,8 @@ func_shell (char *o, char **argv, const char *funcname)
 
   BPTR child_stdout;
   char tmp_output[FILENAME_MAX];
-  unsigned int maxlen = 200;
-  int cc, i;
+  unsigned int maxlen = 200, i;
+  int cc;
   char * buffer, * ptr;
   char ** aptr;
   int len = 0;</diff>
      <filename>function.c</filename>
    </modified>
    <modified>
      <diff>@@ -356,9 +356,8 @@ pattern_search (struct file *file, int archive,
               /* Didn't find it yet: check for DOS-type directories.  */
               if (check_lastslash)
                 {
-                  char *b = strrchr (target, '\\');
-                  check_lastslash = !(b ? b &gt; lastslash
-                                      : (target[0] &amp;&amp; target[1] == ':'));
+                  char *b = strchr (target, '\\');
+                  check_lastslash = !(b || (target[0] &amp;&amp; target[1] == ':'));
                 }
 #endif
 #endif</diff>
      <filename>implicit.c</filename>
    </modified>
    <modified>
      <diff>@@ -634,7 +634,7 @@ static enum { make, user } current_access;
 /* Under -d, write a message describing the current IDs.  */
 
 static void
-log_access (char *flavor)
+log_access (const char *flavor)
 {
   if (! ISDB (DB_JOBS))
     return;</diff>
      <filename>misc.c</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,8 @@
+2006-04-01  Paul D. Smith  &lt;psmith@gnu.org&gt;
+
+	* scripts/functions/realpath: Don't run tests with multiple
+	initial slashes on Windows: those paths mean something different.
+
 2006-03-19  Paul D. Smith  &lt;psmith@gnu.org&gt;
 
 	* scripts/features/parallelism: Test that the jobserver is</diff>
      <filename>tests/ChangeLog</filename>
    </modified>
    <modified>
      <diff>@@ -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
 # master copy.
+#
+# First, find the &quot;default&quot; 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('
-submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5&gt;output
+# run_make_test('
+# submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5&gt;output
 
-dependfile: ; @echo FOO=bar &gt; $@
+# dependfile: ; @echo FOO=bar &gt; $@
 
-INCL := true
+# INCL := true
 
-FOO=foo
-ifeq ($(INCL),true)
--include dependfile
-endif
+# FOO=foo
+# ifeq ($(INCL),true)
+# -include dependfile
+# endif
 
-fdprint: ; @echo hi &gt;&amp;5 &amp;&amp; echo &quot;$(FOO)&quot;
+# fdprint: ; @echo $(filter --jobserver%,$(MAKEFLAGS))
 
-recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true',
-              '-j2',
-              'bar');
+# recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true',
+#               '-j2 INCL=false fdprint',
+#               'bar');
 
-unlink('dependfile', 'output');
+# unlink('dependfile', 'output');
 
 
-# Do it again, this time where the include is done by the non-master make.
-run_make_test(undef, '-j2 recurse INCL=false', 'bar');
+# # Do it again, this time where the include is done by the non-master make.
+# run_make_test(undef, '-j2 recurse INCL=false', 'bar');
 
-unlink('dependfile', 'output');
+# unlink('dependfile', 'output');
 
 1;</diff>
      <filename>tests/scripts/features/parallelism</filename>
    </modified>
    <modified>
      <diff>@@ -20,18 +20,10 @@ ifneq ($(realpath /),/)
   $(error )
 endif
 
-ifneq ($(realpath ///),/)
-  $(error )
-endif
-
 ifneq ($(realpath /.),/)
   $(error )
 endif
 
-ifneq ($(realpath ///.),/)
-  $(error )
-endif
-
 ifneq ($(realpath /./),/)
   $(error )
 endif
@@ -44,10 +36,6 @@ ifneq ($(realpath /..),/)
   $(error )
 endif
 
-ifneq ($(realpath ///..),/)
-  $(error )
-endif
-
 ifneq ($(realpath /../),/)
   $(error )
 endif
@@ -63,8 +51,31 @@ endif
 .PHONY: all
 all: ; @:
 ',
-'',
-'');
+              '',
+              '');
+
+# On Windows platforms, &quot;//&quot; 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.</diff>
      <filename>tests/scripts/functions/realpath</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a88dc33a6b9f432d175f71008afc52fa49848dbd</id>
    </parent>
  </parents>
  <author>
    <name>psmith</name>
    <email>psmith</email>
  </author>
  <url>http://github.com/rocky/remake/commit/bc4636fe847a52c2f4de879e63a009d0d377eea1</url>
  <id>bc4636fe847a52c2f4de879e63a009d0d377eea1</id>
  <committed-date>2006-03-31T22:36:40-08:00</committed-date>
  <authored-date>2006-03-31T22:36:40-08:00</authored-date>
  <message>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.</message>
  <tree>8cd5c3eb29d3682ad7682a63416acd8389762901</tree>
  <committer>
    <name>psmith</name>
    <email>psmith</email>
  </committer>
</commit>
