GNU bug report logs - #26100
Switch from Automake to GNU Make

Previous Next

Package: emacs;

Reported by: Paul Eggert <eggert <at> cs.ucla.edu>

Date: Wed, 15 Mar 2017 00:17:02 UTC

Severity: normal

Tags: patch

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26100 in the body.
You can then email your comments to 26100 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Wed, 15 Mar 2017 00:17:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Paul Eggert <eggert <at> cs.ucla.edu>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 15 Mar 2017 00:17:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Emacs bug reports <bug-gnu-emacs <at> gnu.org>
Subject: Switch from Automake to GNU Make
Date: Tue, 14 Mar 2017 17:16:21 -0700
[Message part 1 (text/plain, inline)]
Attached is a patch to change the Emacs build procedure to use GNU Make 
instead of Automake, along the lines I suggested in January. I tested 
this on Fedora 25 and on Solaris 10. Although I've tried to make it 
portable to MS-Windows I cannot easily test it there. I plan to do more 
testing on it before installing it, and am sending it to bug-gnu-emacs 
now to give the MS-Windows folks a heads-up.

http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00097.html

[0001-Switch-from-Automake-to-GNU-Make.patch (application/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Wed, 15 Mar 2017 15:36:02 GMT) Full text and rfc822 format available.

Message #8 received at 26100 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 26100 <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Wed, 15 Mar 2017 17:34:48 +0200
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> Date: Tue, 14 Mar 2017 17:16:21 -0700
> 
> Attached is a patch to change the Emacs build procedure to use GNU Make 
> instead of Automake, along the lines I suggested in January. I tested 
> this on Fedora 25 and on Solaris 10. Although I've tried to make it 
> portable to MS-Windows I cannot easily test it there. I plan to do more 
> testing on it before installing it, and am sending it to bug-gnu-emacs 
> now to give the MS-Windows folks a heads-up.

Looks okay to me, thanks.

> diff --git a/nt/gnulib-modules-to-delete.cfg b/nt/gnulib-cfg.mk
> similarity index 60%
> rename from nt/gnulib-modules-to-delete.cfg
> rename to nt/gnulib-cfg.mk
> index 09bea0e..4095ecf 100644
> --- a/nt/gnulib-modules-to-delete.cfg
> +++ b/nt/gnulib-cfg.mk
> @@ -1,19 +1,37 @@
> -# This is the list of modules to be deleted from ../lib/gnulib.mk.
> +# Configurations for ../lib/gnulib.mk.
>  #
> -# We delete them because they either conflict with MinGW headers or
> +# Copyright 2017 Free Software Foundation, Inc.
> +#
> +# This file is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This file is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this file.  If not, see <http://www.gnu.org/licenses/>.
> +
> +
> +# Gnulib odules to be omitted from Emacs.
            ^^^^^^
A typo.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Wed, 15 Mar 2017 17:22:02 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Wed, 15 Mar 2017 17:20:08 +0000
On Tue 14 Mar 2017, Paul Eggert wrote:

> Attached is a patch to change the Emacs build procedure to use GNU Make
> instead of Automake, along the lines I suggested in January. I tested this on
> Fedora 25 and on Solaris 10. Although I've tried to make it portable to
> MS-Windows I cannot easily test it there. I plan to do more testing on it
> before installing it, and am sending it to bug-gnu-emacs now to give the
> MS-Windows folks a heads-up.
>
> http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00097.html

lib/Makefile.in has:
  include ../nt/gnulib-cfg.mk

however for out of tree builds this should be:
  include $(top_srcdir)/nt/gnulib-cfg.mk

After that change, I've bootstrapped this successfully from a clean tree
on Windows (64bit msys2 mingw64).

    AndyM





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Thu, 16 Mar 2017 00:11:02 GMT) Full text and rfc822 format available.

Message #14 received at 26100 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 26100 <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Wed, 15 Mar 2017 20:10:25 -0400
Paul Eggert wrote:

> Attached is a patch to change the Emacs build procedure to use GNU
> Make instead of Automake

Thanks, great news! Nitpicks below.

> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -73,10 +73,6 @@ CDPATH=
>  cache_file = @cache_file@
>  CONFIGURE_FLAGS = --cache-file=$(cache_file)
>  
> -AUTOCONF = @AUTOCONF@
[...]
> -AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
> -
> -$(srcdir)/configure: $(AUTOCONF_INPUTS)
> -	cd ${srcdir} && ${AUTOCONF}
> -
[...]
> +$(srcdir)/configure $(srcdir)/src/stamp-h.in: \
> +  $(srcdir)/configure.ac $(srcdir)/m4/*.m4
> +	cd $(srcdir) && ./autogen.sh autoconf

autogen.sh passes "-f" to autoreconf, so the new version will be more
aggressive about updating than the old version was. (Also, this hunk
isn't directly related to the overall change, is it?)

>  $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
>  	@ # Usually, there's no need to rebuild src/config.in just
>  	@ # because stamp-h.in has changed (since building stamp-h.in
>  	@ # refreshes config.in as well), but if config.in is missing
>  	@ # then we really need to do something more.
> -	$(if $(wildcard $@),,cd $(srcdir) && $(AUTOHEADER))
> -$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
> -	cd ${srcdir} && ${AUTOHEADER}
> -	rm -f $@
> -	echo timestamp > $@
> +	$(if $(wildcard $@),,cd $(srcdir) && ./autogen.sh autoconf)

Likewise?

> diff --git a/autogen.sh b/autogen.sh
> index bb3f818..f8e71cb 100755
> --- a/autogen.sh
> +++ b/autogen.sh
[...]
> -  autoreconf -fi -I m4 || exit $?
> +  autoreconf -fi -I m4 || exit

Also unrelated?

[New files:]
> build-aux/config.guess
> build-aux/config.sub
> build-aux/install-sh

It's a tiny bit disappointing that we need to version these again
(you removed them in 2011).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Thu, 16 Mar 2017 00:43:02 GMT) Full text and rfc822 format available.

Message #17 received at 26100 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 26100 <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Wed, 15 Mar 2017 20:42:00 -0400
Glenn Morris wrote:

>> build-aux/config.guess
>> build-aux/config.sub
>> build-aux/install-sh
>
> It's a tiny bit disappointing that we need to version these again
> (you removed them in 2011).

PS I think this change is good because it makes the build process easier
to understand. Having automake installed is neither here nor there to me.
So I would be fine with automake still being required, but only to get
config.guess etc. But that would be a bit ugly. (I wonder why autoconf
doesn't come with these files?)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Thu, 16 Mar 2017 09:23:02 GMT) Full text and rfc822 format available.

Message #20 received at 26100 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 26100 <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Thu, 16 Mar 2017 02:22:36 -0700
Glenn Morris wrote:

>
> autogen.sh passes "-f" to autoreconf, so the new version will be more
> aggressive about updating than the old version was.

True. However, in practice this is typically what we want, I think, for the 
reason mentioned in autogen.sh: if autoreconf itself has changed, we want its 
new and not its old output. In the old days when the files were 
sort-of-maintained by hand it made sense to avoid -f, but now that we almost 
always update them automatically it's better to let the robots go to town.

>(Also, this hunk
> isn't directly related to the overall change, is it?)

It is related, because autogen.sh now does more than invoke autoreconf: it also 
creates an up-to-date aclocal.m4 (something autoreconf no longer does).

>> -  autoreconf -fi -I m4 || exit $?
>> +  autoreconf -fi -I m4 || exit
>
> Also unrelated?

Yes, that's merely a minor cleanup, as "exit $?" is equivalent to "exit" and 
it's a bit weird to use the unusual long form (it distracts the reader; at 
least, it distracted me).

> It's a tiny bit disappointing that we need to version these again
> (you removed them in 2011).

Yes, the extra files are disappointing. However, it's not as bad as it appears, 
for three reasons.

1. These files are automatically generated by admin/merge-gnulib so they are 
easy to maintain. Come to think of it, if we could ever get "admin/merge-gnulib" 
to be part of the autogen.sh procedure, we could stop versioning these files again.

2. The old way of automatically-generating these files meant that their contents 
depended on the vagaries of which version of Automake was used by the 
distribution's builder, which meant that Emacs releases sometimes inadvertently 
contained obsolete versions of these files. In contrast, the new approach means 
all distribution builders use the same version of these files.

3. In practice the recent Gnulib copy of these files tends to be more up-to-date 
than the luck-of-the-builder-draw Automake copy, so we'll tend to be more 
up-to-date when doing developer builds.

> (I wonder why autoconf doesn't come with these files?)

They were originally developed for other packages and still "belong" to them. 
One package (config) predates Autoconf and its maintainer wants to stay 
independent. The install-sh file comes from Automake; I suppose it could be 
moved to Autoconf but it's low priority (partly as Automake maintenance has 
essentially stopped....).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26100; Package emacs. (Thu, 16 Mar 2017 20:14:02 GMT) Full text and rfc822 format available.

Message #23 received at 26100 <at> debbugs.gnu.org (full text, mbox):

From: Anders Lindgren <andlind <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>, 26100 <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Thu, 16 Mar 2017 21:13:06 +0100
[Message part 1 (text/plain, inline)]
Hi!

I tested this, without any issues, with the NS port on macOS.

    -- Anders Lindgren
[Message part 2 (text/html, inline)]

Reply sent to Paul Eggert <eggert <at> cs.ucla.edu>:
You have taken responsibility. (Fri, 17 Mar 2017 19:06:02 GMT) Full text and rfc822 format available.

Notification sent to Paul Eggert <eggert <at> cs.ucla.edu>:
bug acknowledged by developer. (Fri, 17 Mar 2017 19:06:02 GMT) Full text and rfc822 format available.

Message #28 received at 26100-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: 26100-done <at> debbugs.gnu.org
Subject: Re: bug#26100: Switch from Automake to GNU Make
Date: Fri, 17 Mar 2017 12:05:25 -0700
I installed the patch, along with a followup patch fixing glitches I 
observed while testing it, and am boldly closing this bug report.





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 15 Apr 2017 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 125 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.