1. 17 Mar, 2017 2 commits
    • Paul Eggert's avatar
      Fixups for GNU Make switchover · 2f893509
      Paul Eggert authored
      This fixes some minor problems introduced in the recent switch to GNU
      Make, discovered by further testing.  Without some of these changes
      'make -j' would sometimes have race conditions caused by missing
      dependencies.  (Bug#26100)
      * .gitignore: Remove src/stamp-h.in, src/stamp-h1.
      * Makefile.in ($(MAKEFILE_NAME)): Depend on configure, not
      src/config.in, since the former's timestamp now represents
      the latter's.
      ($(srcdir)/configure): Use plain ./autogen.sh, for consistency
      with other autogen.sh invocations.
      ($(srcdir)/src/stamp-h.in):
      Remove rule, as this file is no longer created.
      * Makefile.in (top_distclean):
      * src/Makefile.in (bootstrap-clean):
      No need to remove stamp-h1, as that was an Automake byproduct
      and Automake is no longer in use.
      * lib/Makefile.in, src/Makefile.in:
      (AUTOCONF_INPUTS, $(top_srcdir)/configure): Remove.
      (../config.status, Makefile): Simplify by limiting dependencies
      to files we care about and files in the repository, and by
      using just one file to represent the timestamps on multiple
      targets updated by the same rule.
      * autogen.sh: Do not create or use src/stamp-h.in.
      Instead, have 'find' test the two output files directly.
      2f893509
    • Paul Eggert's avatar
      Switch from Automake to GNU Make · 65faa7bc
      Paul Eggert authored
      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.
      65faa7bc
  2. 12 Jan, 2017 2 commits
  3. 11 Jan, 2017 1 commit
  4. 05 Jan, 2017 4 commits
  5. 04 Jan, 2017 1 commit
    • Paul Eggert's avatar
      Port recent autogen.sh changes to Darwin · 44c588a2
      Paul Eggert authored
      Problem reported by Sam Steingold (Bug#25347).
      * autogen.sh: Don't assume 'sed -f-' reads a script from stdin, as
      POSIX does not require it and it does not work on Darwin.
      44c588a2
  6. 03 Jan, 2017 1 commit
    • Eli Zaretskii's avatar
      Generate nt/gnulib.mk from lib/gnulib.mk · 10444dcf
      Eli Zaretskii authored
      This was proposed by Paul Eggert <eggert@cs.ucla.edu>,
      with the purpose of avoiding manual maintenance of
      nt/gnulib.mk.
      
      * nt/gnulib-modules-to-delete.cfg: New file.
      * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0)
      (am__v_GEN_1): New variables.
      (${srcdir}/gnulib.mk): Rules to generate gnulib.mk from
      lib/gnulib.mk and list of modules in gnulib-modules-to-delete.cfg.
      
      * make-dist (nt): Add gnulib-modules-to-delete.cfg to the list of
      files to link.
      * configure.ac (GNULIB_MK): Compute the value according to $opsys.
      * autogen.sh: Create nt/gnulib.mk if it doesn't exist, before
      running autoreconf.
      * Makefile.in (gnulib_mk): New variable.
      ($(srcdir)/nt/gnulib.mk): Rule to produce it.
      (AUTOMAKE_INPUTS): Use $(gnulib_mk) instead of a literal file
      name.
      * .gitignore: Add nt/gnulib.mk.
      
      * src/w32.c (acl_errno_valid): Implement it here, as we no longer
      build the acl-permissions module from Gnulib.
      10444dcf
  7. 01 Jan, 2017 1 commit
  8. 14 May, 2016 1 commit
  9. 05 May, 2016 1 commit
  10. 14 Apr, 2016 1 commit
  11. 13 Apr, 2016 1 commit
    • Paul Eggert's avatar
      Do not require that .git be a directory · 1aebe991
      Paul Eggert authored
      Problem reportyed by Phillip Lord.
      * admin/update_autogen, autogen.sh, build-aux/gitlog-to-emacslog:
      * configure.ac, make-dist:
      Do not require that .git be a directory, as 'git worktree' makes
      it a file and not a directory.
      1aebe991
  12. 13 Mar, 2016 1 commit
    • Paul Eggert's avatar
      Improve diff hunk headers when maintaining Emacs · 181e92c4
      Paul Eggert authored
      * .gitattributes: Improve diff hunk header support for makefiles,
      shell scripts, Ada, C, C++, Objective C, HTML, SHTML, XML, Java,
      Perl, PHP, Python, Ruby, and TeX, all of which are used in Emacs
      somewhere (sometimes just in test cases).
      * autogen.sh: Add regexes for makefiles and shell scripts.
      181e92c4
  13. 05 Feb, 2016 1 commit
  14. 03 Feb, 2016 2 commits
    • Paul Eggert's avatar
      autogen.sh now configures git only on request · aca31e38
      Paul Eggert authored
      * autogen.sh (do_autoconf, do_git): New vars.
      Support new arguments --help, all, autoconf, git.
      By default, just do autoconf-related configuration, not git.
      Prefer 'echo' to 'cat <<EOF ...', as this tends to avoid temp files.
      If GNU cp is available, use it to backup .git/config before
      changing it.  When configuring git, chatter about what is being
      done, and configure git to check hashes.  Avoid some duplicate
      file name specification when creating git hooks.
      
      * GNUmakefile (ALL_IF_GIT): New macro.
      (configure): Use it.
      * INSTALL.REPO: Suggest './autogen.sh all'.
      aca31e38
    • Paul Eggert's avatar
      * autogen.sh: Revert all recent changes. · fe321fdb
      Paul Eggert authored
      fe321fdb
  15. 02 Feb, 2016 1 commit
  16. 01 Feb, 2016 1 commit
  17. 31 Jan, 2016 1 commit
  18. 01 Jan, 2016 1 commit
  19. 02 Oct, 2015 1 commit
  20. 21 Sep, 2015 1 commit
  21. 27 Jan, 2015 1 commit
  22. 01 Jan, 2015 2 commits
  23. 31 Dec, 2014 1 commit
  24. 23 Nov, 2014 1 commit
  25. 31 Oct, 2014 1 commit
    • Eric S. Raymond's avatar
      Backport changes in preparation for git migration from trunk. · cac77f92
      Eric S. Raymond authored
       admin: Changes in several documents.
       autogen.sh: Neutralize language specific to a repository type.
      
       doc/misc/efaq-w32.texi: Neutralized language specific to a repository type.
      
       doc/misc/gnus-coding.txt: Neutralized language specific to a repository type.
      
       lisp/Makefile.in: Change some production names so they're neutral
       about the repository type.
      cac77f92
  26. 26 Oct, 2014 1 commit
  27. 25 Oct, 2014 1 commit
  28. 16 May, 2014 1 commit
    • Paul Eggert's avatar
      Don't require pkg-config when building from repository. · c56327b5
      Paul Eggert authored
      * INSTALL: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
      * INSTALL.REPO: pkg-config is no longer required to build from
      the repository.
      * autogen.sh: Don't check for pkg-config.
      (progs): Remove pkg-config.
      (pkg_config_min, AUTORECONF_ENV, env_space, ACLOCAL_PATH):
      Remove.  All uses removed.
      * m4/pkg.m4: New file, built by admin/merge-pkg-config.
      * configure.ac: Remove unnecessary m4_pattern_forbid of ^PKG_ and
      an AC_ARG_VAR of PKG_CONFIG_PATH.  pkg.m4 does that for us.
      (EMACS_CHECK_MODULES): Remove workaround for old pkg-config bug,
      as we use pkg.m4 from a newer pkg-config.
      * admin/merge-pkg-config: New script.
      * admin/notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
      * etc/NEWS: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
      * etc/PROBLEMS (Build-time-problems): Remove pkg-config problem
      that is no longer an issue.
      * nt/INSTALL: Remove no-longer-needed notes about pkg-config.
      c56327b5
  29. 11 May, 2014 2 commits
  30. 07 May, 2014 1 commit
  31. 05 May, 2014 1 commit
  32. 04 May, 2014 1 commit