[PATCH] Re: [PATCH] m4/header.m4 bug

2000-12-15 Thread Derek R. Price

Here's the same patch again with a test case thrown in.

Derek

--
Derek Price  CVS Solutions Architect ( http://CVSHome.org )
mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com )
--
Nor was it uninteresting to the world that an experiment should be fairly and
fully made whether freedom of discussion, unaided by power, is not sufficient
for the propagation and protection of truth: whether a government conducting
itself in the true spirit of its constitution with zeal and purity and doing no
act which it would be unwilling the whole world should witness can be written
down by falsehood and defamation.  The experiment has been tried; [we] have
witnessed the scene; our fellow citizens have looked on, cool and collected.
They saw the latent source from which these outrages proceeded; they gathered
around their public functionaries, and when the Constitution called them to the
decision by suffrage, they pronounced their verdict, honorable to those who had
served them and consolatory to the friend of man who believes he may be
intrusted with his own affairs.

- Thomas Jefferson; 2nd Inaugural Address, 1805

"Derek R. Price" wrote:

> There was a bug in m4/header.m4 (AM_CONFIG_HEADER) which was causing
> configure & config.status to create a $(top_builddir)/stamp-h file for
> every header file instead of the $(top_builddir)/$(subdir)/stamp-h$index
> file it was supposed to create.  Basically, a few shell metachars which
> were supposed to be interpreted in config.status were being interpreted
> in configure instead and leaving blank spots in config.status.  The
> stamp files were still being created in the correct places in the
> Makefile.ins & Makefiles, so it wasn't a fatal bug, but I fixed it
> anyway.
>
> Derek
>
> --
> Derek Price  CVS Solutions Architect ( http://CVSHome.org )
> mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com )
> --
> Southern DOS: Y'all reckon? (yep/Nope)


Index: ChangeLog
===
RCS file: /cvs/automake/automake/ChangeLog,v
retrieving revision 1.910
diff -u -r1.910 ChangeLog
--- ChangeLog   2000/11/26 22:11:20 1.910
+++ ChangeLog   2000/12/15 19:55:12
@@ -1,3 +1,8 @@
+2000-12-15  Derek Price  <[EMAIL PROTECTED]>
+
+   * m4/header.m4 (AM_CONFIG_HEADER): This macro was broken due to
+   unescaped shell metachars
+
 2000-12-05  Derek Price  <[EMAIL PROTECTED]>
 
* automake.in (require_file_with_conf_line,
Index: m4/header.m4
===
RCS file: /cvs/automake/automake/m4/header.m4,v
retrieving revision 1.7
diff -u -r1.7 m4/header.m4
--- m4/header.m42000/08/06 12:36:53 1.7
+++ m4/header.m42000/12/15 19:49:31
@@ -18,9 +18,9 @@
   patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),
   [am_indx=1
   for am_file in $1; do
-case " $CONFIG_HEADERS " in
-*" $am_file "*)
-  echo timestamp > `echo $am_file | sed 's%:.*%%;s%[^/]*$%%'`stamp-h$am_indx
+case " \$CONFIG_HEADERS " in
+*" \$am_file "*)
+  echo timestamp > \`echo \$am_file | sed 's%:.*%%;s%[^/]*\$%%'\`stamp-h\$am_indx
   ;;
 esac
 am_indx=\`expr \$am_indx + 1\`
--- /dev/null   Thu Aug 24 05:00:32 2000
+++ tests/stamph2.test  Fri Dec 15 15:57:48 2000
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+# Make sure stamp-h* files are created where we expect
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AM_CONFIG_HEADER(firstfile.h sdir/secondfile.h thirdfile.h)
+AC_OUTPUT(Makefile)
+END
+
+: > Makefile.am
+mkdir sdir
+: > firstfile.h.in
+: > sdir/secondfile.h.in
+: > thirdfile.h.in
+
+# Fail gracefully if no autoconf.
+(autoconf --version) > /dev/null 2>&1 || exit 77
+
+$ACLOCAL || exit 1
+autoconf || exit 1
+$AUTOMAKE || exit 1
+./configure || exit 1
+
+(test -f stamp-h1 && test -f sdir/stamp-h2 && test -f stamp-h3) || exit 1
+exit 0
Index: tests/ChangeLog
===
RCS file: /cvs/automake/automake/tests/ChangeLog,v
retrieving revision 1.308
diff -u -r1.308 tests/ChangeLog
--- tests/ChangeLog 2000/11/26 01:37:30 1.308
+++ tests/ChangeLog 2000/12/15 21:02:11
@@ -1,3 +1,8 @@
+2000-12-15  Derek Price  <[EMAIL PROTECTED]>
+
+   * stamph2.test: new file
+   * Makefile.am (TESTS): Added stamph2.test
+
 2000-12-05  Derek Price  <[EMAIL PROTECTED]>
 
* depcomp.test: New File
Index: tests/Makefile.am
===
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.239
diff -u -r1.239 tests/Makefile.am
--- tests/Makefile.am   2000/11/26 01:37:30 1.239
+++ tests/Makefile.am   2000/12/15 21:02:12
@@ -221,6 +222,7 @@
 spell3.test \
 spelling.test \
 stamph.test \
+stamph2.test \
 stdlib.test \
 subdir.test \
 subdir2.test \



[PATCH] m4/header.m4 bug

2000-12-15 Thread Derek R. Price

There was a bug in m4/header.m4 (AM_CONFIG_HEADER) which was causing
configure & config.status to create a $(top_builddir)/stamp-h file for
every header file instead of the $(top_builddir)/$(subdir)/stamp-h$index
file it was supposed to create.  Basically, a few shell metachars which
were supposed to be interpreted in config.status were being interpreted
in configure instead and leaving blank spots in config.status.  The
stamp files were still being created in the correct places in the
Makefile.ins & Makefiles, so it wasn't a fatal bug, but I fixed it
anyway.

Derek

--
Derek Price  CVS Solutions Architect ( http://CVSHome.org )
mailto:[EMAIL PROTECTED] OpenAvenue ( http://OpenAvenue.com )
--
Southern DOS: Y'all reckon? (yep/Nope)




Index: ChangeLog
===
RCS file: /cvs/automake/automake/ChangeLog,v
retrieving revision 1.910
diff -u -r1.910 ChangeLog
--- ChangeLog   2000/11/26 22:11:20 1.910
+++ ChangeLog   2000/12/15 19:55:12
@@ -1,3 +1,8 @@
+2000-12-15  Derek Price  <[EMAIL PROTECTED]>
+
+   * m4/header.m4 (AM_CONFIG_HEADER): This macro was broken due to
+   unescaped shell metachars
+
 2000-12-05  Derek Price  <[EMAIL PROTECTED]>
 
* automake.in (require_file_with_conf_line,
Index: m4/header.m4
===
RCS file: /cvs/automake/automake/m4/header.m4,v
retrieving revision 1.7
diff -u -r1.7 m4/header.m4
--- m4/header.m42000/08/06 12:36:53 1.7
+++ m4/header.m42000/12/15 19:49:31
@@ -18,9 +18,9 @@
   patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),
   [am_indx=1
   for am_file in $1; do
-case " $CONFIG_HEADERS " in
-*" $am_file "*)
-  echo timestamp > `echo $am_file | sed 's%:.*%%;s%[^/]*$%%'`stamp-h$am_indx
+case " \$CONFIG_HEADERS " in
+*" \$am_file "*)
+  echo timestamp > \`echo \$am_file | sed 's%:.*%%;s%[^/]*\$%%'\`stamp-h\$am_indx
   ;;
 esac
 am_indx=\`expr \$am_indx + 1\`