summaryrefslogtreecommitdiff
path: root/nt
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-03-17 11:33:47 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-03-17 11:42:34 -0700
commit65faa7bcb59421603ed2b6e961fe4b9ea8cb91b9 (patch)
tree7081fb93f2e3faec4481ff390f26eb198c013736 /nt
parent9c07e888a7d226f9d84a859b5179b5bc2fd6614d (diff)
downloademacs-65faa7bcb59421603ed2b6e961fe4b9ea8cb91b9.tar.gz
Switch from Automake to GNU Make
Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
Diffstat (limited to 'nt')
-rw-r--r--nt/Makefile.in11
-rw-r--r--nt/gnulib-cfg.mk (renamed from nt/gnulib-modules-to-delete.cfg)92
2 files changed, 45 insertions, 58 deletions
diff --git a/nt/Makefile.in b/nt/Makefile.in
index 90ca6b85f74..7e911db7aa8 100644
--- a/nt/Makefile.in
+++ b/nt/Makefile.in
@@ -54,11 +54,6 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-
AM_V_RC = $(am__v_RC_@AM_V@)
am__v_RC_ = $(am__v_RC_@AM_DEFAULT_V@)
am__v_RC_0 = @echo " RC " $@;
@@ -260,9 +255,3 @@ runemacs${EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES)
emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \
${srcdir}/icons/hand.cur ${srcdir}/$(EMACS_MANIFEST)
$(AM_V_RC)${WINDRES} -I ${srcdir} -O coff -o $@ $<
-
-${srcdir}/gnulib.mk: ${srcdir}/gnulib-modules-to-delete.cfg ${srcdir}/../lib/gnulib.mk
- $(AM_V_GEN)sed '/^[^#]/s|^.*$$|/^## begin *gnulib module &/,/^## end *gnulib module &/d|' < $< > t-gnulib.mk && \
- sed -f t-gnulib.mk ${srcdir}/../lib/gnulib.mk > $@-t && \
- ${srcdir}/../build-aux/move-if-change $@-t $@ && \
- rm -f t-gnulib.mk
diff --git a/nt/gnulib-modules-to-delete.cfg b/nt/gnulib-cfg.mk
index 09bea0ee6a5..4095ecfd6e9 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.
+
+# Omit them because they either conflict with MinGW headers or
# headers in nt/inc, or because those modules won't compile with
# MinGW, or because Emacs already has the corresponding facilities as
# part of Emacs sources, and their implementation is incompatible with
# Gnulib's.
#
-# In general, do NOT remove anything from ../lib/gnulib.mk that
-# doesn't need to be removed, to minimize the differences from
+# In general, do NOT omit modules that
+# don't need to be omitted, to minimize the differences from
# upstream gnulib.mk and thus make the maintenance easier. Every
# header file whose generation is controlled by configure-time tests
# does NOT need to be removed; instead, force the configure script to
# accept whatever MinGW has to offer, by defining the appropriate
# Autoconf variable in the nt/mingw-cfg.site file. Headers that are
-# generated conditionally have the tell-tale "if GL_GENERATE_foo_H"
+# generated conditionally have the tell-tale "ifneq (,$(GL_GENERATE_foo_H))"
# condition before their Makefile snippet in this file. Likewise, do
# NOT remove gnulib modules which introduce header files that don't
# exist in MinGW and in nt/inc/, since they cannot possibly clash
@@ -22,45 +40,25 @@
# the w32 substitutes in Emacs, disable their compilation by defining
# suitable variables in nt/mingw-cfg.site.
# ----------------------------------------------------------------------
-#
-# Copyright (C) 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/>.
-#
-# As a special exception to the GNU General Public License,
-# this file may be distributed as part of a program that
-# contains a configuration script generated by Autoconf, under
-# the same distribution terms as the rest of that program.
-#
-acl-permissions
-allocator
-at-internal
-careadlinkat
-dirent
-dirfd
-fcntl
-fcntl-h
-inttypes-incomplete
-mkostemp
-pipe2
-secure_getenv
-signal-h
-stdio
-stdlib
-sys_select
-sys_stat
-sys_time
-sys_types
-tempname
-unistd
+
+OMIT_GNULIB_MODULE_acl-permissions = true
+OMIT_GNULIB_MODULE_allocator = true
+OMIT_GNULIB_MODULE_at-internal = true
+OMIT_GNULIB_MODULE_careadlinkat = true
+OMIT_GNULIB_MODULE_dirent = true
+OMIT_GNULIB_MODULE_dirfd = true
+OMIT_GNULIB_MODULE_fcntl = true
+OMIT_GNULIB_MODULE_fcntl-h = true
+OMIT_GNULIB_MODULE_inttypes-incomplete = true
+OMIT_GNULIB_MODULE_mkostemp = true
+OMIT_GNULIB_MODULE_pipe2 = true
+OMIT_GNULIB_MODULE_secure_getenv = true
+OMIT_GNULIB_MODULE_signal-h = true
+OMIT_GNULIB_MODULE_stdio = true
+OMIT_GNULIB_MODULE_stdlib = true
+OMIT_GNULIB_MODULE_sys_select = true
+OMIT_GNULIB_MODULE_sys_stat = true
+OMIT_GNULIB_MODULE_sys_time = true
+OMIT_GNULIB_MODULE_sys_types = true
+OMIT_GNULIB_MODULE_tempname = true
+OMIT_GNULIB_MODULE_unistd = true