From: Ralf Wildenhues Date: Thu, 27 Nov 2008 21:27:15 +0000 (+0100) Subject: Fix portability issues in distcleancheck_listfiles doc example. X-Git-Tag: v1.10b~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a880e0977638d40bb1bbfbef451ec7447022e0b5;p=thirdparty%2Fautomake.git 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. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index c31e083c2..a0c557693 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-11-27 Ralf Wildenhues + + 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 Jim Meyering diff --git a/THANKS b/THANKS index 8afb9cf4f..1098dae7e 100644 --- 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 diff --git a/doc/automake.texi b/doc/automake.texi index 065e6faeb..1190f2e67 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -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 diff --git a/tests/Makefile.am b/tests/Makefile.am index 2a8e847e3..cac16a1ce 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -228,6 +228,7 @@ dirforbid.test \ dirlist.test \ dirlist2.test \ discover.test \ +distcleancheck.test \ distcom2.test \ distcom3.test \ distcom4.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index c1c67a65e..993dd7c41 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -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 index 000000000..5f66a1268 --- /dev/null +++ b/tests/distcleancheck.test @@ -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 . + +# 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 + +: