1. 01 Jan, 2019 1 commit
  2. 01 Jan, 2018 1 commit
  3. 30 Sep, 2017 1 commit
  4. 17 Aug, 2017 1 commit
    • Eli Zaretskii's avatar
      Fix the MS-Windows build · 2cfb32bf
      Eli Zaretskii authored
      * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_open): Omit Gnulib module
      'open'.
      
      * lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]: Restore definition.
      2cfb32bf
  5. 12 Aug, 2017 1 commit
    • Eli Zaretskii's avatar
      Use Gnulib 'tempname' on MS-Windows · 8cc8ad02
      Eli Zaretskii authored
      * lib-src/ntlib.h (mkdir, open): Remove redefinitions.  They are
      now in nt/inc/ms-w32.h.
      * lib-src/ntlib.c (sys_mkdir, sys_open): New functions.
      (mkostemp): Remove.
      
      * src/w32.c (mkostemp): Remove.
      (sys_mkdir): Accept a second (unused) argument.
      * src/fileio.c (Fmake_directory_internal): Remove the WINDOWSNT
      specific call to mkdir.  (Bug#28023)
      
      * nt/inc/ms-w32.h (mkdir): Remove from "#ifdef emacs" and redefine
      to accept 2 arguments.
      (open): Remove from "#ifdef emacs".
      * nt/mingw-cfg.site (ac_cv_func_mkostemp): Remove.
      * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_mkostemp)
      (OMIT_GNULIB_MODULE_tempname): Remove.
      8cc8ad02
  6. 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
  7. 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