On Mon, Mar 16, 2009 at 6:13 AM, Stefan Seefeld <ste...@codesourcery.com> wrote:
> I have run into a situation where GNU make complains about circular
> dependencies, where there are none:
...
> src.cu.o: %.cu.o: %.cu
>       �...@echo "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


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to