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";
                  }

Reply via email to