]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Fix portability issues in distcleancheck_listfiles doc example.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Thu, 27 Nov 2008 21:27:15 +0000 (22:27 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Thu, 27 Nov 2008 21:29:09 +0000 (22:29 +0100)
* doc/automake.texi (Dist): In the `distcleancheck_listfiles'
code example, add `.' path, for Solaris `find', also rewrite so
`{}' appears only once and as separate argument, for Posix.
* tests/distcleancheck.test: New test.
* tests/Makefile.am: Update.
* THANKS: Update.
Report by Jan Engelhardt and Andreas Schwab.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
THANKS
doc/automake.texi
tests/Makefile.am
tests/Makefile.in
tests/distcleancheck.test [new file with mode: 0755]

index c31e083c2b3903d919c6ff3fe382bbc18ae097f4..a0c55769396d766e1a8084ccd0bfb87eedfe51aa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-11-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Fix portability issues in distcleancheck_listfiles doc example.
+       * doc/automake.texi (Dist): In the `distcleancheck_listfiles'
+       code example, add `.' path, for Solaris `find', also rewrite so
+       `{}' appears only once and as separate argument, for Posix.
+       * tests/distcleancheck.test: New test.
+       * tests/Makefile.am: Update.
+       * THANKS: Update.
+       Report by Jan Engelhardt and Andreas Schwab.
+
 2008-11-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Jim Meyering  <jim@meyering.net>
 
diff --git a/THANKS b/THANKS
index 8afb9cf4f8589cf7c42aa19383d3c7363d6c03fc..1098dae7ec2894ef5f07508913a935ad05f513f4 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -125,6 +125,7 @@ James Amundson              amundson@users.sourceforge.net
 James Henstridge       james@daa.com.au
 James R. Van Zandt     jrv@vanzandt.mv.com
 James Youngman         jay@gnu.org
+Jan Engelhardt         jengelh@medozas.de
 Janos Farkas           chexum@shadow.banki.hu
 Jared Davis            abiword@aiksaurus.com
 Jason Duell            jcduell@lbl.gov
index 065e6faeb9b575f63ae217781c4a0178cc1b8e04..1190f2e67b9d18b946adb2d548a125da670688e6 100644 (file)
@@ -8207,7 +8207,8 @@ following definition instead:
 
 @example
 distcleancheck_listfiles = \
-  find -type f -exec sh -c 'test -f $(srcdir)/@{@} || echo @{@}' ';'
+  find . -type f -exec sh -c 'test -f $(srcdir)/$$1 || echo $$1' \
+       sh '@{@}' ';'
 @end example
 
 The above definition is not the default because it's usually an error if
index 2a8e847e3bf9acfb6217d253d952249ee0049db4..cac16a1ce33f8781bdfa6d7caaca35ff35f29bb9 100644 (file)
@@ -228,6 +228,7 @@ dirforbid.test \
 dirlist.test \
 dirlist2.test \
 discover.test \
+distcleancheck.test \
 distcom2.test \
 distcom3.test \
 distcom4.test \
index c1c67a65e4558e55a102b69418929e3c72270b44..993dd7c41fd8553bf1318a0a6dda7a3a12eb762b 100644 (file)
@@ -382,6 +382,7 @@ dirforbid.test \
 dirlist.test \
 dirlist2.test \
 discover.test \
+distcleancheck.test \
 distcom2.test \
 distcom3.test \
 distcom4.test \
diff --git a/tests/distcleancheck.test b/tests/distcleancheck.test
new file mode 100755 (executable)
index 0000000..5f66a12
--- /dev/null
@@ -0,0 +1,66 @@
+#! /bin/sh
+# Copyright (C) 2008  Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure the suggested `distcleancheck_listfiles' in the manual works.
+# The example Makefile.am we use is from the FAQ entry `distcleancheck'.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in << 'END'
+AC_PROG_CC
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+# This Makefile.am is bogus.  See @node{distcleancheck} in the manual
+# for how to fix it properly.
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c
+dist_man_MANS = foo.1
+
+foo.1: foo$(EXEEXT)
+       echo man page for foo$(EXEEXT) > foo.1
+
+## Ignore warnings about overridden variables
+AUTOMAKE_OPTIONS = -Wno-override
+distcleancheck_listfiles = \
+  find . -type f -exec sh -c 'test -f $(srcdir)/$$1 || echo $$1' \
+       sh '{}' ';'
+END
+
+cat >foo.c <<'END'
+int main () { return 0; }
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+$MAKE
+$MAKE distcheck
+
+# Now ensure that we really needed the override.
+sed '/distcleancheck_listfiles/,$d' Makefile.am > t
+mv -f t Makefile.am
+$AUTOMAKE
+./configure
+$MAKE
+$MAKE -e distcheck && Exit 1
+
+: