Subject: bug#12142: automake tries to compile a program when 'foo' and 'foo.cxx' exist (though the former is header)

From: Jack Kelly <[email-masked]>
Date: Mon, 6 Aug 2012 18:41:23 +1000

On Mon, Aug 6, 2012 at 5:38 PM, Stefano Lattarini
<[email-masked]> wrote:
> On 08/05/2012 11:45 AM, Michał Górny wrote:
>> My library was structured like the following:
>>
>> - src/foo (the header file),
>>
> Why not simply using a more usual name like 'foo.h' for 'foo.hxx'?
> That would be unlikely to trigger unexpected problems in the first
> place ...

I have a feeling it's mimicking the way modern C++ prefers `#include
<iostream>' over `#include <iostream.h>'

I propose a third fix: move the header file into a separate directory
such as `include/' and add `-I$(top_srcdir)/include' to AM_CPPFLAGS.

Is it worth providing a way to disable implicit rules as an option to
AM_INIT_AUTOMAKE or via the AUTOMAKE_OPTIONS variable? It's not enough
to pass --no-builtin-rules to AM_MAKEFLAGS as I don't know if that's
portable. Further, the MAKEFLAGS only get propagated to submakes: the
top-level make has already loaded the implicit rules before it sees
MAKEFLAGS.

-- Jack