Hello,
On Tue, Sep 27, 2005 at 05:23:43AM -0500, John Ratliff wrote:
> I tested it in Linux with automake 1.9.6 and it still doesn't work.
indeed, I previously did some quick testing with rule .list-> .c,
and it worked.
But for rules .foo -> .o it really doesn't work.
I wrote a patch which fixes this. It applies to CVS version, but also
to 1.9.6, so you don't need to install the CVS versions.
Actually, I guess that you can directly patch /usr/bin/automake.
Please find the patch attached to this mail.
(I haven't ran "make check" with it, sorry.)
Does this work for you?
> How do I get CVS Automake and Autoconf?
It's not necessary any more, but just for your information:
http://savannah.gnu.org/cvs/?group=autoconf
http://sources.redhat.com/automake/
Have a nice day,
Stepan Kasal
2005-09-27 Stepan Kasal <[EMAIL PROTECTED]>
* automake.in (handle_single_transform): Direct suffix rule preserves
the directory prefix, so the generated object name should contain
it, too.
--- automake.in 2005-09-17 15:05:39.000000000 +0200
+++ automake.in 2005-09-27 17:10:47.000000000 +0200
@@ -1755,6 +1755,10 @@
# This is probably the result of a direct suffix rule.
# In this case we just accept the rewrite.
$object = "$base$extension";
+ if ($directory ne '')
+ {
+ $object = $directory . '/' . $object;
+ }
$linker = '';
}
else
@@ -1824,7 +1828,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";
}