* bug#26100: Switch from Automake to GNU Make
2017-03-15 0:16 bug#26100: Switch from Automake to GNU Make Paul Eggert
@ 2017-03-15 15:34 ` Eli Zaretskii
2017-03-15 17:20 ` Andy Moreton
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2017-03-15 15:34 UTC (permalink / raw)
To: Paul Eggert; +Cc: 26100
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-15 0:16 bug#26100: Switch from Automake to GNU Make Paul Eggert
2017-03-15 15:34 ` Eli Zaretskii
@ 2017-03-15 17:20 ` Andy Moreton
2017-03-16 0:10 ` Glenn Morris
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Andy Moreton @ 2017-03-15 17:20 UTC (permalink / raw)
To: 26100
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-15 0:16 bug#26100: Switch from Automake to GNU Make Paul Eggert
2017-03-15 15:34 ` Eli Zaretskii
2017-03-15 17:20 ` Andy Moreton
@ 2017-03-16 0:10 ` Glenn Morris
2017-03-16 0:42 ` Glenn Morris
2017-03-16 9:22 ` Paul Eggert
2017-03-16 20:13 ` Anders Lindgren
2017-03-17 19:05 ` Paul Eggert
4 siblings, 2 replies; 8+ messages in thread
From: Glenn Morris @ 2017-03-16 0:10 UTC (permalink / raw)
To: Paul Eggert; +Cc: 26100
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).
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-16 0:10 ` Glenn Morris
@ 2017-03-16 0:42 ` Glenn Morris
2017-03-16 9:22 ` Paul Eggert
1 sibling, 0 replies; 8+ messages in thread
From: Glenn Morris @ 2017-03-16 0:42 UTC (permalink / raw)
To: Paul Eggert; +Cc: 26100
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?)
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-16 0:10 ` Glenn Morris
2017-03-16 0:42 ` Glenn Morris
@ 2017-03-16 9:22 ` Paul Eggert
1 sibling, 0 replies; 8+ messages in thread
From: Paul Eggert @ 2017-03-16 9:22 UTC (permalink / raw)
To: Glenn Morris; +Cc: 26100
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....).
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-15 0:16 bug#26100: Switch from Automake to GNU Make Paul Eggert
` (2 preceding siblings ...)
2017-03-16 0:10 ` Glenn Morris
@ 2017-03-16 20:13 ` Anders Lindgren
2017-03-17 19:05 ` Paul Eggert
4 siblings, 0 replies; 8+ messages in thread
From: Anders Lindgren @ 2017-03-16 20:13 UTC (permalink / raw)
To: Paul Eggert, 26100
[-- Attachment #1: Type: text/plain, Size: 91 bytes --]
Hi!
I tested this, without any issues, with the NS port on macOS.
-- Anders Lindgren
[-- Attachment #2: Type: text/html, Size: 178 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#26100: Switch from Automake to GNU Make
2017-03-15 0:16 bug#26100: Switch from Automake to GNU Make Paul Eggert
` (3 preceding siblings ...)
2017-03-16 20:13 ` Anders Lindgren
@ 2017-03-17 19:05 ` Paul Eggert
4 siblings, 0 replies; 8+ messages in thread
From: Paul Eggert @ 2017-03-17 19:05 UTC (permalink / raw)
To: 26100-done
I installed the patch, along with a followup patch fixing glitches I
observed while testing it, and am boldly closing this bug report.
^ permalink raw reply [flat|nested] 8+ messages in thread