unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#26100: Switch from Automake to GNU Make
@ 2017-03-15  0:16 Paul Eggert
  2017-03-15 15:34 ` Eli Zaretskii
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Paul Eggert @ 2017-03-15  0:16 UTC (permalink / raw)
  To: 26100

[-- Attachment #1: Type: text/plain, Size: 473 bytes --]

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


[-- Attachment #2: 0001-Switch-from-Automake-to-GNU-Make.patch --]
[-- Type: application/x-patch, Size: 199094 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
@ 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

end of thread, other threads:[~2017-03-17 19:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).