+2009-10-06 Bruno Haible <bruno@clisp.org>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix 'compile' script to not call mv when target equals source.
+ * lib/compile: Don't attempt to move the generated file to its
+ target destination when it is already at the target destination.
+ Avoids an mv failure with subdir-objects.
+ * tests/ccnoco3.test: New test.
+ * tests/Makefile.am: Adjust.
+
2009-10-01 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
Fix recommended way to run automake's test scripts with Zsh.
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2009-10-06.20; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
# Foundation, Inc.
ret=$?
if test -f "$cofile"; then
- mv "$cofile" "$ofile"
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
- mv "${cofile}bj" "$ofile"
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
--- /dev/null
+#! /bin/sh
+# Copyright (C) 2001, 2002, 2008, 2009 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 2, 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/>.
+
+# Test to make sure `compile' doesn't call 'mv SRC SRC'.
+
+required=gcc
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = wish
+wish_SOURCES = a.c
+END
+
+mkdir sub
+
+cat > a.c << 'END'
+#include <stdio.h>
+
+int main ()
+{
+ printf ("hi\n");
+}
+END
+
+cat > Mycomp << 'END'
+#!/bin/sh
+
+case " "$* in
+ *\ -c*\ -o* | *\ -o*\ -c*)
+ exit 1
+ ;;
+esac
+
+exec gcc "$@"
+END
+
+chmod +x Mycomp
+
+# Ignore user CFLAGS.
+CFLAGS=
+export CFLAGS
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --copy --add-missing
+
+mkdir build
+cd build
+
+# Make sure the compiler doesn't understand `-c -o'
+CC=`pwd`/../Mycomp
+export CC
+
+../configure
+$MAKE 2>stderr || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+grep 'mv.*the same file' stderr && Exit 1
+
+Exit 0