From: Ralf Wildenhues Date: Sun, 19 Mar 2006 05:09:11 +0000 (+0000) Subject: * aclocal.in (write_aclocal): Unlink `aclocal.m4' before X-Git-Tag: v1.10.2~260 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=39b6663d292c7c99ca808eb9e6751d95e5948d80;p=platform%2Fupstream%2Fautomake.git * aclocal.in (write_aclocal): Unlink `aclocal.m4' before writing into it, to break a symlinked file. * tests/acloca20.test: New test. * tests/Makefile.am: Updated. --- diff --git a/ChangeLog b/ChangeLog index 0ffb55fce..c31c4ea5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-03-19 Ralf Wildenhues + + * aclocal.in (write_aclocal): Unlink `aclocal.m4' before + writing into it, to break a symlinked file. + * tests/acloca20.test: New test. + * tests/Makefile.am: Updated. + 2006-03-19 Ralf Wildenhues Allow package trees (packages with subpackages) to share diff --git a/aclocal.in b/aclocal.in index 18d9c7d03..a05ba72a6 100644 --- a/aclocal.in +++ b/aclocal.in @@ -763,6 +763,10 @@ $output"; if (!$dry_run) { + if (-e $output_file && !unlink $output_file) + { + fatal "could not remove `$output_file': $!"; + } my $out = new Automake::XFile "> $output_file"; print $out $output; } diff --git a/tests/Makefile.am b/tests/Makefile.am index c5f826b2a..e984632ff 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -22,6 +22,7 @@ acloca16.test \ acloca17.test \ acloca18.test \ acloca19.test \ +acloca20.test \ acoutnoq.test \ acoutpt.test \ acoutpt2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 647ad3956..bb02d7643 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -34,10 +34,10 @@ TESTS = aclibobj.test aclocal.test aclocal3.test aclocal4.test \ aclocal5.test aclocal6.test aclocal7.test aclocal8.test \ aclocal9.test acloca10.test acloca11.test acloca12.test \ acloca13.test acloca14.test acloca15.test acloca16.test \ - acloca17.test acloca18.test acloca19.test acoutnoq.test \ - acoutpt.test acoutpt2.test acoutqnl.test acoutbs.test \ - acsilent.test acsubst.test acsubst2.test all.test alloca.test \ - alloca2.test alpha.test alpha2.test amassign.test \ + acloca17.test acloca18.test acloca19.test acloca20.test \ + acoutnoq.test acoutpt.test acoutpt2.test acoutqnl.test \ + acoutbs.test acsilent.test acsubst.test acsubst2.test all.test \ + alloca.test alloca2.test alpha.test alpha2.test amassign.test \ ammissing.test ansi.test ansi2.test ansi3.test ansi3b.test \ ansi4.test ansi5.test ansi6.test ansi7.test ansi8.test \ ansi9.test ansi10.test ar.test ar2.test asm.test autohdr.test \ diff --git a/tests/acloca20.test b/tests/acloca20.test new file mode 100755 index 000000000..16b519265 --- /dev/null +++ b/tests/acloca20.test @@ -0,0 +1,57 @@ +#! /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. + +# Make sure aclocal does not write into symlinked aclocal.m4. + +. ./defs || exit 1 + +set -e + +cat >foo.m4 <<'END' +m4_define([FOO], [echo wrong foo]) +END + +cat >doit.in <<'END' +@LN_S@ foo.m4 aclocal.m4 +END + +cat >configure.in <<'END' +AC_INIT([acloca20], [1.0]) +AC_PROG_LN_S +dnl FOO +AC_CONFIG_FILES([doit], [chmod +x doit]) +AC_OUTPUT +END + +$AUTOCONF +./configure +./doit +grep 'wrong foo' aclocal.m4 + +cat >acinclude.m4 <<'END' +m4_define([FOO], [echo right foo]) +END +sed 's/dnl //' configure.int +mv -f configure.int configure.in + +$ACLOCAL +$AUTOCONF +./configure | grep 'right foo' +grep 'wrong foo' foo.m4