Subject: Re: bug#14560: C Compilation variables present in output Makefiles unconditionally

From: Ralf Corsepius <[email-masked]>
Date: Tue, 11 Jun 2013 13:29:12 +0200

On 06/05/2013 12:03 PM, Stefano Lattarini wrote:
> [+cc bug-automake, so this will be registered in the bug tracker]
>
> On 06/05/2013 07:16 AM, Ralf Corsepius wrote:
>> On 06/03/2013 09:14 PM, Stefano Lattarini wrote:
>>> We are pleased to announce the GNU Automake 1.13.3 maintenance release.
>>
>> When comparing automake-1.13.2 generated Makefile.ins against
>> automake-1.13.3 generated Makefile.in, in projects which are
>> _not_ using "c" I am observing changes like this one below:
>>
>> --- a/Makefile.in
>> +++ b/Makefile.in
>> ...
>> @@ -109,6 +109,18 @@ AM_V_at = $(am__v_at_@AM_V@)
>>   am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
>>   am__v_at_0 = @
>>   am__v_at_1 =
>> +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
>> +       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
>> +AM_V_CC = $(am__v_CC_@AM_V@)
>> +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
>> +am__v_CC_0 = @echo "  CC      " $@;
>> +am__v_CC_1 =
>> +CCLD = $(CC)
>> +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
>> +AM_V_CCLD = $(am__v_CCLD_@AM_V@)
>> +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
>> +am__v_CCLD_0 = @echo "  CCLD    " $@;
>> +am__v_CCLD_1 =
>>   SOURCES =
>>   DIST_SOURCES =
>>   AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
>> ...
>>
> Yeah, this shouldn't happen.  Not a serious regression thankfully,
> but still unpleasant.
>
>> So far, I havn't had sufficient time to implement a simple reproducer,
>> but I am inclined to believe, automake-1.13.3 inserts c-compiler
>> related vars into Makefile.ins, in cases no C-compiler is being used.

Please find a reproducer enclosed below.

Untar the tarball and run autoreconf -fi.
Compare the files being generated by
automake-1.13.2+autoconf-2.69
against those being generated by
automake-1.13.3+autoconf-2.69

 From what I can gather, something seems broken with automake-1.13.3's 
SUFFIX handling. Seems to me as is these extraneous variables are being 
generated when a Makefile use more than one suffix rule.

Ralf