]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Fix renamed objects with subdir-objects and other languages.
authorFlorian Briegel <briegel@zone42.de>
Tue, 7 Apr 2009 21:16:01 +0000 (23:16 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 7 Apr 2009 21:16:01 +0000 (23:16 +0200)
* automake.in: Fixed bug when building with renamed objects
and foreign languages.
* tests/suffix13.test: New test.
* tests/Makefile.am: Adjust.
* THANKS: Update.
Reports by Florian Briegel and Stepan Kasal.

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

index e574108869072438cb6a399d05c3e0ec4dfea7b9..d5e8ba3af79e458092b1d50aba59eb0db4d5250e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2009-04-07  Florian Briegel  <briegel@zone42.de>  (tiny change)
+           Stepan Kasal  <skasal@redhat.com>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Fix renamed objects with subdir-objects and other languages.
+       * automake.in: Fixed bug when building with renamed objects
+       and foreign languages.
+       * tests/suffix13.test: New test.
+       * tests/Makefile.am: Adjust.
+       * THANKS: Update.
+       Reports by Florian Briegel and Stepan Kasal.
+
 2009-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Do not remove texinfo outputs upon mostlyclean.
diff --git a/THANKS b/THANKS
index 9f91c9c4c20294653c4f5498a23c58eab92ff52a..fda6f74e6aed43de6bbb71015cd76b3f71b875f6 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -97,6 +97,7 @@ Erik Lindahl          E.Lindahl@chem.rug.nl
 Esben Haabendal Soerensen bart@kom.aau.dk
 Ezra Peisach           epeisach@MED-XTAL.BU.EDU
 Flavien Astraud                flav42@yahoo.fr
+Florian Briegel                briegel@zone42.de
 Francesco Salvestrini  salvestrini@gmail.com
 François Pinard               pinard@iro.umontreal.ca
 Fred Fish              fnf@ninemoons.com
index 1be3e1821b1ec37d5f4202b2dea17b3456488619..2577ffbccffd88c5fe6d90143c68c23de024b2c6 100755 (executable)
@@ -1919,7 +1919,16 @@ sub handle_single_transform ($$$$$%)
            {
                my $obj_sans_ext = substr ($object, 0,
                                           - length ($this_obj_ext));
-               my $full_ansi = $full;
+               my $full_ansi;
+               if ($directory ne '')
+                 {
+                       $full_ansi = $directory . '/' . $base . $extension;
+                 }
+               else
+                 {
+                       $full_ansi = $base . $extension;
+                 }
+
                if ($lang->ansi && option 'ansi2knr')
                  {
                    $full_ansi =~ s/$KNOWN_EXTENSIONS_PATTERN$/\$U$&/;
index b0bb273c9583580d89533f9a0441dcb438147043..d90eb6c5bc2c4db888abc4a4fab9da8825e2af8c 100644 (file)
@@ -645,6 +645,7 @@ suffix9.test \
 suffix10.test \
 suffix11.test \
 suffix12.test \
+suffix13.test \
 symlink.test \
 symlink2.test \
 symlink3.test \
index e3c9206c2528f4ed640b3aef0c1417c23aaa4cc1..e2fdaceef9b840d0d844dcfff801f9362af2f01b 100644 (file)
@@ -877,6 +877,7 @@ suffix9.test \
 suffix10.test \
 suffix11.test \
 suffix12.test \
+suffix13.test \
 symlink.test \
 symlink2.test \
 symlink3.test \
diff --git a/tests/suffix13.test b/tests/suffix13.test
new file mode 100755 (executable)
index 0000000..dda4cfb
--- /dev/null
@@ -0,0 +1,75 @@
+#! /bin/sh
+# Copyright (C) 2002, 2003, 2006, 2009  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.
+
+# Tests that Automake understands suffix rules with renamed objects
+# and subdir objects.
+# Reported by Florian Briegel.
+
+. ./defs || exit 1
+
+set -e
+
+cat >>configure.in <<EOF
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT
+EOF
+
+cat >Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+SUFFIXES = .baz .c
+.baz.c:
+       case $@ in sub/*) $(MKDIR_P) sub;; *) :;; esac
+       cp $< $@
+
+DISTCLEANFILES = sub/bar.c
+
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c sub/bar.baz
+foo_CFLAGS =
+END
+
+mkdir sub
+cat > sub/bar.baz <<'END'
+extern int foo ();
+int main () { return foo (); }
+END
+cat > foo.c <<'END'
+int foo () { return 0; }
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+./configure
+$MAKE
+
+$MAKE distcheck
+$MAKE distclean
+
+# Should also work without subdir-objects
+
+sed '/subdir-objects/d' < Makefile.am > t
+mv -f t Makefile.am
+$AUTOMAKE --force
+./configure
+$MAKE
+$MAKE distcheck
+: