This is the mail archive of the
automake-prs@sourceware.org
mailing list for the automake project.
Re: automake/483: "missing" doesn't handle "--output" for missing makeinfo
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: adl at sources dot redhat dot com
- Cc: automake-prs at sources dot redhat dot com,
- Date: 22 Apr 2006 12:21:02 -0000
- Subject: Re: automake/483: "missing" doesn't handle "--output" for missing makeinfo
- Reply-to: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
The following reply was made to PR automake/483; it has been noted by GNATS.
From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
To: Dennis.J.Linse@SAIC.com, automake-gnats@sources.redhat.com,
automake-patches@gnu.org
Cc:
Subject: Re: automake/483: "missing" doesn't handle "--output" for missing makeinfo
Date: Sat, 22 Apr 2006 14:11:22 +0200
--hoZxPH4CaxYzWscb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
* Ralf Wildenhues wrote on Sat, Apr 22, 2006 at 02:00:56PM CEST:
> * lib/missing: Remove superfluous quotes. Replace all uses of
> `[' by `test', for consistency, and for..
> * tests/missing4.test: ..this new test.
> * tests/Makefile.am: Update.
D'oh, I started that one before Alexandre's patch to create
missing4.test was in, and forgot to check that now.
Sorry about that, here's an updated version of the second patch.
Cheers,
Ralf
--hoZxPH4CaxYzWscb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="missing-test-quotes-2.diff"
* lib/missing: Remove superfluous quotes. Replace all uses of
`[' by `test', for consistency, and for..
* tests/missing5.test: ..this new test.
* tests/Makefile.am: Update.
Index: lib/missing
===================================================================
RCS file: /cvs/automake/automake/lib/missing,v
retrieving revision 1.30
diff -u -r1.30 missing
--- lib/missing 12 Jan 2006 21:11:14 -0000 1.30
+++ lib/missing 22 Apr 2006 12:07:49 -0000
@@ -44,7 +46,7 @@
msg="missing on your system"
-case "$1" in
+case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
@@ -106,7 +109,7 @@
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
-case "$1" in
+case $1 in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
@@ -135,7 +138,7 @@
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case "$1" in
+case $1 in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -164,7 +167,7 @@
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
- case "$f" in
+ case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
@@ -214,25 +217,25 @@
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
- if [ ! -f y.tab.h ]; then
+ if test ! -f y.tab.h; then
echo >y.tab.h
fi
- if [ ! -f y.tab.c ]; then
+ if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
@@ -244,18 +247,18 @@
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
- if [ ! -f lex.yy.c ]; then
+ if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
@@ -322,13 +324,13 @@
fi
firstarg="$1"
if shift; then
- case "$firstarg" in
+ case $firstarg in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
- case "$firstarg" in
+ case $firstarg in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.603
diff -u -r1.603 Makefile.am
--- tests/Makefile.am 21 Apr 2006 19:02:29 -0000 1.603
+++ tests/Makefile.am 22 Apr 2006 12:07:50 -0000
@@ -358,6 +358,7 @@
missing2.test \
missing3.test \
missing4.test \
+missing5.test \
mkinstall.test \
mkinst2.test \
mkinst3.test \
--- /dev/null 2006-04-22 14:16:50.823007744 +0200
+++ tests/missing5.test 2006-04-22 13:51:28.000000000 +0200
@@ -0,0 +1,67 @@
+#! /bin/sh
+# Copyright (C) 2006 Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake 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 2, or (at your option)
+# any later version.
+#
+# GNU Automake 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 Automake; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+# test how well `missing' finds output file names of various tools.
+# PR automake/483.
+
+. ./defs || exit 1
+
+set -e
+
+# these programs may be invoked by `missing'
+needed_tools='chmod find sed test touch'
+needed_tools_csep=`echo $needed_tools | sed 's/ /, /g'`
+
+cat >configure.in <<EOF
+AC_INIT([missing4], [1.0])
+m4_foreach([tool], [$needed_tools_csep],
+ [AC_PATH_PROG(tool, tool, [false])
+ AC_CONFIG_FILES(tool, chmod +x tool)
+ ])
+AC_OUTPUT
+EOF
+
+for tool in $needed_tools; do
+ cat >$tool.in <<EOF
+#! /bin/sh
+exec @$tool@ "\$@"
+EOF
+done
+
+$AUTOCONF
+./configure
+
+echo output-file > output-file
+cp output-file my--output--file-o
+
+save_PATH=$PATH
+PATH=.
+export PATH
+missing --help
+missing --version
+for tool in autom4te help2man makeinfo; do
+ missing --run $tool -o my--output--file-o input
+ missing --run $tool --output my--output--file-o input
+done
+PATH=$save_PATH
+export PATH
+diff output-file my--output--file-o
+test ! -f ./--file-o
+test ! -f input
--hoZxPH4CaxYzWscb--