automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automake 1.16.1: problem with non-gnu make and gnulib


From: Assaf Gordon
Subject: Re: Automake 1.16.1: problem with non-gnu make and gnulib
Date: Sat, 24 Aug 2019 15:27:55 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

Hello Mathieu, Karl,

On 2019-08-24 11:43 a.m., Mathieu Lirzin wrote:
On Sat, 24 Aug 2019, Assaf Gordon wrote:

I've encountered a problem where a released tarball (of 'make dist')
generated by Automake-1.16.1 fails to build with non-gnu make (e.g.
"bmake" on BSDs).
The exact same project and 'make dist' with automake-1.15 builds fine.


One convenient way to detect what caused this problem would be to do a
‘git bisect’ session on Automake VCS repository and analyse the diff of
the commit introducing the failure.


The offending commit is:
---
https://git.sv.gnu.org/cgit/automake.git/commit/?id=f4e91bfc
commit f4e91bfc490da63209aad19636568da3b955dcd4
Date:   Mon Mar 13 12:41:59 2017 +0100

  automake: Shorter object file names under subdir-objects

  Combining the 'subdir-objects' option with target-specific flags had
  the consequence of producing long object file names.  This was done to
  preventively ensure the uniqueness of object file names.  We are now
  using shorter names by default, and handle long names when an actual
  conflict is detected.  This will hopefully reduce the necessity of
  using the 'prog_SHORTNAME' facility.

  Example:
  previously:
    AUTOMAKE_OPTIONS = subdir-objects
    bin_PROGRAMS += path/to/foo
    path_to_foo_CFLAGS = $(AM_CFLAGS) -g

  resulted in objects:
    sub/path_to_foo-foo.o

  now object file name is:
    sub/foo-foo.o
---

On 2019-08-24 3:14 p.m., Karl Berry wrote:> Low-tech idea similar to git bisect: do the 1.15 build and 1.16
build in separate dirs, diff -r the Makefile.am's.
Good idea.

I'm attaching the diff of the Makefile.in (which is the file generated
by automake) when building "gnu hello".

Some targets changed location in the file, but I don't think that matters.

The one thing the pops up is that in the "good" version,
there are "distdir distdir-am dist dist-all" targets,
while in the "bad" version there is no "distdir-am" target.
Later on there's this:
====
-distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am +
+distdir-am: $(DISTFILES)
====

I tested by simply doing:

   git clone git://git.sv.gnu.org/hello.git
   cd hello
   ./bootstrap
   ./configure
   bmake

Once with automake commit f4e91bfc (bad one),
and once with the preceeding commit c946ae (good one).

-----

investigation continues...

thanks,
 - assaf



Attachment: makefile.in.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]