Ralf: | For your convenience: of my list of pinged patches only this one has not | been addressed yet: | http://lists.gnu.org/archive/html/automake-patches/2005-09/msg00013.html | The bug originated here: | http://lists.gnu.org/archive/html/automake/2005-09/msg00088.html | The missing part of Stepan's patch should be in here: | http://lists.gnu.org/archive/html/automake-patches/2006-03/msg00006.html
Sorry for the delay. I'm checking this in. 2006-04-09 Stepan Kasal <[EMAIL PROTECTED]> Ralf Wildenhues <[EMAIL PROTECTED]> * automake.in (handle_single_transform): Preserve directories in direct suffix rules. * tests/suffix12.test: New test. * tests/Makefile.am (TESTS): Add it. Report from John Ratliff. Index: THANKS =================================================================== RCS file: /cvs/automake/automake/THANKS,v retrieving revision 1.278 diff -u -r1.278 THANKS --- THANKS 26 Mar 2006 07:52:07 -0000 1.278 +++ THANKS 9 Apr 2006 07:15:12 -0000 @@ -121,6 +121,7 @@ Johan Danielsson [EMAIL PROTECTED] Johannes Nicolai [EMAIL PROTECTED] John Pierce [EMAIL PROTECTED] +John Ratliff [EMAIL PROTECTED] John W. Coomes [EMAIL PROTECTED] Josh MacDonald [EMAIL PROTECTED] Joshua Cowan [EMAIL PROTECTED] Index: automake.in =================================================================== RCS file: /cvs/automake/automake/automake.in,v retrieving revision 1.1619 diff -u -r1.1619 automake.in --- automake.in 23 Mar 2006 06:35:15 -0000 1.1619 +++ automake.in 9 Apr 2006 07:15:12 -0000 @@ -1790,6 +1790,7 @@ # This is probably the result of a direct suffix rule. # In this case we just accept the rewrite. $object = "$base$extension"; + $object = "$directory/$object" if $directory ne ''; $linker = ''; } else @@ -1859,7 +1860,7 @@ # For Java, the way we're handling it right now, a # `..' component doesn't make sense. - if ($lang->name eq 'java' && $object =~ /(\/|^)\.\.\//) + if ($lang && $lang->name eq 'java' && $object =~ /(\/|^)\.\.\//) { err_am "`$full' should not contain a `..' component"; } Index: tests/Makefile.am =================================================================== RCS file: /cvs/automake/automake/tests/Makefile.am,v retrieving revision 1.599 diff -u -r1.599 Makefile.am --- tests/Makefile.am 26 Mar 2006 07:52:08 -0000 1.599 +++ tests/Makefile.am 9 Apr 2006 07:15:13 -0000 @@ -523,6 +523,7 @@ suffix9.test \ suffix10.test \ suffix11.test \ +suffix12.test \ symlink.test \ symlink2.test \ symlink3.test \ Index: tests/suffix12.test =================================================================== RCS file: tests/suffix12.test diff -N tests/suffix12.test --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ tests/suffix12.test 9 Apr 2006 07:15:13 -0000 @@ -0,0 +1,56 @@ +#! /bin/sh +# Copyright (C) 2002, 2003, 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. + +# Tests that Automake understands suffix rules with subdir objects. +# Reported by John Ratliff. + +. ./defs || exit 1 + +set -e + +cat >>configure.in <<EOF +AC_PROG_CC +AC_OUTPUT +EOF + +cat >Makefile.am << 'END' +AUTOMAKE_OPTIONS = subdir-objects +SUFFIXES = .baz .o +# we fake here: +.baz.o: + cp $< $@ + +bin_PROGRAMS = foo +foo_SOURCES = foo.c sub/bar.baz +print: + @echo BEGIN: $(foo_OBJECTS) :END +END + +mkdir sub +: > sub/bar.baz +: > foo.c + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a +./configure +env OBJEXT=OBJ $MAKE -e print >stdout +cat stdout +grep 'BEGIN: foo.OBJ sub/bar.OBJ :END' stdout -- Alexandre Duret-Lutz Shared books are happy books. http://www.bookcrossing.com/friend/gadl