[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make falling over builtin rules ?
From: |
Philip Guenther |
Subject: |
Re: make falling over builtin rules ? |
Date: |
Mon, 16 Mar 2009 11:23:43 -0700 |
On Mon, Mar 16, 2009 at 6:13 AM, Stefan Seefeld <address@hidden> wrote:
> I have run into a situation where GNU make complains about circular
> dependencies, where there are none:
...
> src.cu.o: %.cu.o: %.cu
> address@hidden "compiling..."
>
> will result in the message:
>
> make: Circular src.cu <- src.cu.o dependency dropped.
> compiling...
>
> When I replace '.cu' by '.cc', the warning / error message goes away.
> It also goes away if I disable builtin rules (via -r).
>
> Can you please confirm whether this is a GNU make bug, or user error ?
User error. Generating ${base}.o from ${base} (where base=src.cu in
this case) is a reverse of the normal logic that ${base} is the
executable generated from ${base}.o. So make is correct: there is
circular dependency.
The correct thing to do is not use the .o suffix in a way that
conflicts with the precedents going back to Unix version 7.
For example, instead of using ".cu.o" and ".cu", use ".cuo" and ".cu".
Philip Guenther