bug-make
[Top][All Lists]
Advanced

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

Re: Requiring Automake 1.16.1 due to Gnulib getloadavg?


From: Paul Smith
Subject: Re: Requiring Automake 1.16.1 due to Gnulib getloadavg?
Date: Mon, 26 Aug 2019 13:29:09 -0400

On Mon, 2019-08-26 at 08:26 -0700, Paul Eggert wrote:
> Paul Smith wrote:
> 
> > * Replace local portability code with Gnulib content.  Unfortunately due to 
> > a
> >    problem with Gnulib support for getloadavg, this forces a requirement on
> >    Automake 1.16 or above in order to build from Git.  See README.git.
> 
> bootstrap.conf and configure.ac say "1.16.1" so presumably NEWS
> should say "1.16.1" rather than "1.16".

OK.

> However, I assume this note refers to the email thread rooted here:
> 
> https://lists.gnu.org/r/bug-gnulib/2018-06/msg00024.html
> 
> and it's not clear to me what the Gnulib/Automake portability problem
> is.

Agreed.  As far as I know no one every figured it out, Bruno just
suggested moving to the latest and that fixed it.

I just tried this again on Ubuntu 18.04.3, as follows:

  $ automake --version
  automake (GNU automake) 1.15.1

  $ git clean -fdx
  $ ./bootstrap && ./configure && make distcheck
    ...
  make[2]: Leaving directory 
'/home/psmith/src/make/make/make-4.2.90/_build/sub/doc'
  make[2]: Entering directory 
'/home/psmith/src/make/make/make-4.2.90/_build/sub'
  Makefile:1126: lib/.deps/getloadavg.Po: No such file or directory
  make[2]: *** No rule to make target 'lib/.deps/getloadavg.Po'.  Stop.
  Makefile:1258: recipe for target 'distclean-recursive' failed
  make[1]: *** [distclean-recursive] Error 1
  Makefile:1466: recipe for target 'distcheck' failed
  make: *** [distcheck] Error 1

It appears that the target that's failing for me, that you didn't try
in your test, is "make distclean".

> For what it's worth, Emacs uses Gnulib getloadavg, but since Emacs
> switched from Automake to GNU make in 2017 its build procedure does
> not require any particular Automake version. Perhaps GNU Make could
> start depending on (an older version of) GNU Make, and take this
> approach in some future version.

GNU make includes a shell script that can be used to build itself so it
doesn't need to rely on an older version of GNU make.

However I'm not excited about replacing all the capabilities provided
by automake, in a hand-rolled set of makefiles.

> Conversely, Coreutils uses Gnulib getloadavg and still uses Automake,
> but it seems to work fine requiring only Automake 1.11.2 or later.
> Perhaps this is because Coreutils switched to non-recursive 'make' in
> 2012. This might be another approach GNU Make could take.

As far as I'm aware, GNU make already uses a non-recursive
configuration of autoconf/automake at least for its own code... that
is, there's only one Makefile.am at the root.

The lib/Makefile.am is created by gnulib.  I'm not sure how to handle
that non-recursively (if it's possible).

I guess I also have po/Makefile.in.in but I'm not sure how to make that
non-recursive either.




reply via email to

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