Subject: bug#14594: depcomp missing from Makefile.in in AM 1.13.3

From: Stefano Lattarini <[email-masked]>
Date: Wed, 12 Jun 2013 15:18:43 +0200

tags 14594 notabug
close 1459
stop

Hi Jeff.  Thanks for the report, but I don't think there is a real
bug here.

On 06/12/2013 01:42 AM, Jeff Squyres (jsquyres) wrote:
> Attached is a trivial reproducer showing that Automake is not including depcomp
> in the generated Makefile.in, which therefore results in a "make dist" tarball
> being un-buildable.
>
Have you actually tried that?  I tried your test case as follows:

  $ autoconf -vfi && ./configure && make && make distcheck

and found no error at all.

Albeit I must admit that you have incurred in an admittedly suboptimal and
even "suspicious" (but *wholly harmless*) behavior of Automake, where the
*same* auxiliary file can be distributed from several distinct Makefiles
at once -- and the exact list of such Makefiles can depend on whether the
auxiliary file in question was already present the fist time automake has
been run!

And abridged report of this new behaviour is also present in the NEWS
file ("New in 1.12", section "Miscellaneous changes"):

  - Some auxiliary files that are automatically distributed by Automake
    (e.g., 'install-sh', or the 'depcomp' script for packages compiling
    C sources) might now be listed in the DIST_COMMON variable in many
    Makefile.in files, rather than in the top-level one.

See below for few more details.

> I have tested with Automake 1.13.3, which I just downloaded from
> ftp.gnu.org and built myself (paired with Autoconf 2.69).
> 
> Three things seem to be necessary for this to happen:
> 
> 1. configure.ac identifies itself as a foreign project (i.e., AM_INIT_AUTOMAKE([foreign]))
> 2. The source files must not be in the root (i.e., src/hello.c, not hello.c)
>
The important thing is actually that he depcomp script get (indirectly)
requested by 'src/Makefile.am' (due to C sources being listed in there),
not that the C source file itself is in the 'src' directory.

> 3. depcomp is not present when you run autoreconf
> 
> Specifically: the first time you run autoreconf -ivf (e.g., when you
> get a fresh/clean checkout of a project), depcomp is generated as
> expected, but it is *not* included in the Makefile.in.
>
But it *is* in 'src/Makefile.in', so you are still safe.

  However, if you run autoreconf -ivf a second time, depcomp is then included in Makefile.in.
> 
> Instructions for the reproducer:
> 
> 1. Untar the tarball; cd into automake-1.13.3-bug
> 2. Run the "./run" script, which does the following:
> 
>     rm -f depcomp missing install-sh
>     autoreconf -ivf
>     grep depcomp Makefile.in
>     # Notice that depcomp is not listed in Makefile.in
>     # Now run autoreconf a second time
>     autoreconf -ivf
>     grep depcomp Makefile.in
>     # Notice that depcomp is now listed in Makefile.in
> 

Given all the reationales above, I'm closing this report as
"not a bug".  But feel free to continue the discussion here if
you have further observations, doubts or objections.

Regards,
  Stefano