aboutsummaryrefslogtreecommitdiffstats
path: root/make-dist
diff options
context:
space:
mode:
authorPaul Eggert2017-03-17 11:33:47 -0700
committerPaul Eggert2017-03-17 11:42:34 -0700
commit65faa7bcb59421603ed2b6e961fe4b9ea8cb91b9 (patch)
tree7081fb93f2e3faec4481ff390f26eb198c013736 /make-dist
parent9c07e888a7d226f9d84a859b5179b5bc2fd6614d (diff)
downloademacs-65faa7bcb59421603ed2b6e961fe4b9ea8cb91b9.tar.gz
emacs-65faa7bcb59421603ed2b6e961fe4b9ea8cb91b9.zip
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 'make-dist')
-rwxr-xr-xmake-dist10
1 files changed, 5 insertions, 5 deletions
diff --git a/make-dist b/make-dist
index 5370d03891e..96e0a730482 100755
--- a/make-dist
+++ b/make-dist
@@ -418,11 +418,11 @@ echo "Making links to 'leim' and its subdirectories"
418## FIXME Can we not just use the "find -type f" method for this one? 418## FIXME Can we not just use the "find -type f" method for this one?
419echo "Making links to 'build-aux'" 419echo "Making links to 'build-aux'"
420(cd build-aux 420(cd build-aux
421 ln compile config.guess config.sub depcomp msys-to-w32 ../${tempdir}/build-aux 421 ln config.guess config.sub msys-to-w32 ../${tempdir}/build-aux
422 ln gitlog-to-changelog gitlog-to-emacslog ../${tempdir}/build-aux 422 ln gitlog-to-changelog gitlog-to-emacslog ../${tempdir}/build-aux
423 ln install-sh missing move-if-change ../${tempdir}/build-aux 423 ln install-sh move-if-change ../${tempdir}/build-aux
424 ln update-copyright update-subdirs ../${tempdir}/build-aux 424 ln update-copyright update-subdirs ../${tempdir}/build-aux
425 ln dir_top make-info-dir ar-lib ../${tempdir}/build-aux) 425 ln dir_top make-info-dir ../${tempdir}/build-aux)
426 426
427echo "Making links to 'src'" 427echo "Making links to 'src'"
428### Don't distribute the configured versions of 428### Don't distribute the configured versions of
@@ -444,7 +444,7 @@ echo "Making links to 'src/bitmaps'"
444echo "Making links to 'lib'" 444echo "Making links to 'lib'"
445(cd lib 445(cd lib
446 ln [a-zA-Z_]*.[ch] ../${tempdir}/lib 446 ln [a-zA-Z_]*.[ch] ../${tempdir}/lib
447 ln gnulib.mk Makefile.am Makefile.in ../${tempdir}/lib 447 ln gnulib.mk.in Makefile.in ../${tempdir}/lib
448 cd ../${tempdir}/lib 448 cd ../${tempdir}/lib
449 script='/[*]/d; s/\.in\.h$/.h/' 449 script='/[*]/d; s/\.in\.h$/.h/'
450 rm -f `ls *.in.h | sed "$script"`) 450 rm -f `ls *.in.h | sed "$script"`)
@@ -476,7 +476,7 @@ echo "Making links to 'nt'"
476(cd nt 476(cd nt
477 ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt 477 ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt
478 ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt 478 ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
479 ln *.in gnulib.mk gnulib-modules-to-delete.cfg ../${tempdir}/nt 479 ln *.in gnulib-cfg.mk ../${tempdir}/nt
480 ln mingw-cfg.site epaths.nt INSTALL.W64 ../${tempdir}/nt 480 ln mingw-cfg.site epaths.nt INSTALL.W64 ../${tempdir}/nt
481 ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt) 481 ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt)
482 482