Subject: Automatic chaining of make suffix rules (was: Re: bug#7824: won't fix)

From: Stefano Lattarini <[email-masked]>
Date: Mon, 23 Jul 2012 14:42:08 +0200

[Re-adding the list, as this discussion is worth being registered in
the archives IMHO]

On 07/23/2012 02:18 PM, Юрий Пухальский wrote:
> On Mon, Jul 23, 2012 at 3:40 PM, Stefano Lattarini
> <[email-masked]> wrote:
>> On 07/23/2012 11:42 AM, Юрий Пухальский wrote:
>>> I understand that it's about a year since last activity on that bug.
>>> And i had not yet time to write concisely about the issue i'm
>>> suffering from.
>>>
>>> The situation is that both of the approaches (.pc.c rule and .pc.lo
>>> rule) have problems entailed.
>>
>>>  * .pc.lo rule doesn't create tags for *.pc sources.
>>>
>> Try to add the relevant '.pc' files to $(TAGS_FILES) explicitly.  It should
>> solve your issue.  If it doesn't, you've found a new Automake bug, which I
>> will gladly fix :-)
>
> Ah, ok! I knew there must be something like that.
> But why in the first place it doesn't do it automatically? I have it
> in the _SOURCES… Is it afraid of the .pc extension?
>
I'm not sure actually.  Might be a tiny bug in automake.  Care to open a
new report about the issue, so I won't forget?  I'll get to it eventually,
but not right now.

>>
>>>  * .pc.c rule doesn't work on HP-UX.
>>>
>> Which is the "wontfix" bug unfortunately.  IMHO you should start lobbying
>> for the use of GNU make whenever possible, or you'll miss all the exciting
>> new features of Automake-NG ;-)
>
> "Und grün des Lebens goldner Baum…"
> 
> Alas! My thing must be highly portable. I'm not sure who's guilty in
> this case, maybe HP,
>
Well, their make is busted in another, more relevant way:

  <http://lists.gnu.org/archive/html/autoconf-patches/2011-01/msg00031.html>

And the INSTALL file from Automake itself reads:

   HP-UX `make' updates targets which have the same time stamps as
   their prerequisites, which makes it generally unusable when shipped
   generated files such as `configure' are involved.  Use GNU `make'
   instead.

This behaviour of HP-UX also violates the POSIX standard.

But back to your use case, the HP-UX issue at hand (not chaining suffix
rules automatically) is shared with at least another make implementation,
that is, Solaris XPG4 make.  But I usually don't care much about that
one, because Solaris users have other, much better make implementations
available from their vendor (that is, CCS make and Sun Distributed
make) which doesn't suffer from that limitation.  The *BSD makes don't
suffer from it either.  As for AIX, IRIX and OSF1/Tru64, I don't have
access to those systems, so I can't test how their make implementations
behave.

> but probably kicking austin group for clarification is not that
> bad idea.
>
It's a pretty good one indeed.  Especially if you are volunteering :-)

Thanks,
  Stefano