Subject: Automake-installed auxiliary scripts can get silently out-of-date after an Automake upgrade (was: Re: [PATCH] {master} missing: do not touch timestamps; only warn for out-of-date files)

From: Stefano Lattarini <[email-masked]>
Date: Tue, 26 Jun 2012 13:23:26 +0200

Severity: minor
thanks

[Adding bug-automake]

On 06/26/2012 12:32 PM, Bruno Haible wrote:
> Stefano Lattarini wrote:
>> I'm almost inclined not to do so, to force the affected
>> projects' broken setup to be fixed; i.e., if you are using Automake 1.11,
>> you let it install the correct 'missing' program, instead of forcing it
>> to use the 'missing' from Automake 1.13.
> 
> But developers don't have the impression that they are doing something
> wrong when they use an old 'missing' program.
> 
> How to reproduce:
> 
> =========================== Makefile.am ============================
> AUTOMAKE_OPTIONS = foreign
> =========================== configure.ac ===========================
> AC_INIT
> AM_INIT_AUTOMAKE([dummy],[0])
> AC_CONFIG_FILES([Makefile])
> AC_OUTPUT
> ====================================================================
> 
> Execute this with Automake 1.10.3:
> $ aclocal
> $ automake -Wall -a -c
> configure.ac:2: installing `./install-sh'
> configure.ac:2: installing `./missing'
> 
> Then execute this with Automake 1.12:
> $ aclocal
> $ automake -Wall
> 
> No warning. How is a developer meant to notice that he's doing something
> wrong if 'automake -Wall' does not tell him?
>
This is actually a good point.  When you upgrade your build system to
a new Automake version, you should run automake with the "--force" option,
to ensure that the automake-installed scripts are updated even if they
are already present in the build tree.  But if you fail to do so, you
don't get any warning, which is not very user-friendly and can cause such
hard-to-spot errors.

Any idea for a simple solution to this problem?

Regards,
  Stefano