1. 27 Oct, 2019 1 commit
  2. 26 Jun, 2019 2 commits
  3. 02 Jun, 2019 1 commit
  4. 11 Apr, 2019 1 commit
    • Paul Eggert's avatar
      Bring back dmpstruct.h · 9994bf17
      Paul Eggert authored
      Bring back the dmpstruct.h checking, and use it when
      --enable-checking=structs is specified.  The checking can be helpful
      to some developers, although it gets in the way of others and is
      not needed for ordinary tarball builds.
      * src/dmpstruct.awk: Restore this file, with mode 644 not 755.
      * configure.ac: New option-arg --enable-checking=structs,
      implied by --enable-checking.
      (CHECK_STRUCTS): New macro and var.
      * src/Makefile.in (CHECK_STRUCTS): New macro.
      (dmpstruct_headers, dmpstruct.h, dmpstruct.h):
      Restore these macros and rules.
      (pdumper.o): Restore this dependency if $(CHECK_STRUCTS) is true.
      (mostlyclean): Remove dmpstruct.h.
      * src/pdumper.c [CHECK_STRUCTS]: Include dmpstruct.h,
      and restore checks against hashes.
      9994bf17
  5. 09 Apr, 2019 2 commits
    • Paul Eggert's avatar
      Remove the need for temacs.in · d8260374
      Paul Eggert authored
      Instead of building a file temacs.in used only to compute a
      fingerprint, compute the fingerprint directly from the .o and
      .a files that go into temacs.in.  This speeds up the build by
      avoiding the need to link temacs twice, once with a dummy
      fingerprint.
      * lib-src/make-fingerprint.c (main): No need to generate
      a fingerprint file that includes config.h, now that fingerprint.c
      depends on all the .o files.
      * src/Makefile.in ($(libsrc)/make-fingerprint$(EXEEXT)):
      Use the same rule as $(libsrc)/make-docfile$(EXEEXT).
      * src/fingerprint-dummy.c: Remove.
      * src/Makefile.in (${charsets}, $(libsrc)/make-docfile$(EXEEXT))
      ($(LIBEGNU_ARCHIVE), $(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a)
      (../config.status, ${ETAGS}, ../lisp/TAGS, $(lwlibdir)/TAGS)
      ($(lispsource)/loaddefs.el):
      Prefer ‘$(MAKE) -C $(dir $@)’ to ‘${MAKE} -C SOMESTRING’ when
      either will do, as the former is more regular and lets us
      coalesce rules better.
      (EMACS_DEPS_PRE, EMACS_DEPS_POST, BUILD_EMACS_PRE)
      (BUILD_EMACS_POST, temacs.in$(EXEEXT)): Remove.
      (FINGERPRINTED): New macro.
      (fingerprint.c): Use it instead of temacs.in$(EXEEXT), to
      avoid the need to build temacs.in at all.
      (temacs$(EXEEXT)): No need to depend on other .o files now;
      fingerprint.o is enough, since it depends on the rest.
      Spell out what used to be in BUILD_EMACS_PRE and BUILD_EMACS_POST.
      (mostlyclean): No need to remove temacs.in.
      d8260374
    • Paul Eggert's avatar
      Remove dmpstruct.h · 44a39e3e
      Paul Eggert authored
      The hassles of updating the dmpstruct.h-using code bit me again.
      These updates are more trouble than they’re worth.  See:
      https://lists.gnu.org/r/emacs-devel/2019-03/msg00122.html
      As I’m the main person who’s made changes in this area since
      dmpstruct.h was introduced, I’m the most motivated to clean up
      the situation.
      * make-dist (possibly_non_vc_files): Remove src/dmpstruct.h.
      * src/Makefile.in (dmpstruct_headers, dmpstruct.h): Remove.
      (pdumper.o): Do not depend on dmpstruct.h.
      (mostlyclean): Do not remove dmpstruct.h.
      * src/dmpstruct.awk: Remove.
      * src/pdumper.c: Do not include dmpstruct.h.
      (CHECK_STRUCTS): Remove.  All uses removed.
      44a39e3e
  6. 24 Feb, 2019 1 commit
    • Eric Abrahamsen's avatar
      Make pinyin to Chinese character mapping available to elisp · 28f7e981
      Eric Abrahamsen authored
      * leim/Makefile.in: Build the file pinyin.el from pinyin.map.
      * lisp/international/titdic-cnv.el (pinyin-convert): New function that
        writes the library pinyin.el, containing a new constant
        `pinyin-character-map'.
      * .gitignore: Ignore the generated pinyin.el file.
      28f7e981
  7. 02 Feb, 2019 1 commit
  8. 15 Jan, 2019 1 commit
    • Daniel Colascione's avatar
      Add portable dumper · d12e5d00
      Daniel Colascione authored
      Add a new portable dumper as an alternative to unexec.  Use it by default.
      
      * src/dmpstruct.awk: New file.
      * src/doc.c (get_doc_string): use will_dump_p().
      * src/editfns.c (styled_format): silence compiler warning
      with UNINIT.
      * src/emacs-module.c (syms_of_module): staticpro ltv_mark.
      * src/emacs.c (gflags): new variable.
      (init_cmdargs): unwrap
      (string_starts_with_p, find_argument, dump_error_to_string)
      (load_pdump): new functions.
      (main): detect pdumper and --temacs invocation; actually load
      portable dump when detected; set gflags as appropriate; changes to
      init functions throughout to avoid passing explicit
      'initialized' argument.
      * src/eval.c (inhibit_lisp_code): remove unused variable.
      (init_eval_once_for_pdumper): new function.
      (init_eval_once): call it.
      * src/filelock.c: CANNOT_DUMP -> will_dump_p()
      * src/fingerprint-dummy.c: new file
      * src/fingerprint.h: new file
      * src/fns.c: CANNOT_DUMP -> will_dump_p(), etc.
      (weak_hash_tables): remove
      (hashfn_equal, hashfn_eql): un-staticify
      (make_hash_table): set new 'next_weak' hash table field; drop
      global weak_hash_tables logic.
      (copy_hash_table): drop global weak_hash_tables logic.
      (hash_table_rehash): new function.
      (hash_lookup, hash_put, hash_remove_from_table, hash_clear):
      rehash if needed.
      (sweep_weak_table): un-staticify; explain logic; bool-ify.
      (sweep_weak_hash_tables): remove function.
      * src/font.c (syms_of_font): remember pdumper stuff.
      * src/fontset.c (syms_of_fontset): remember pdumper stuff.
      * src/frame.c (make_initial_frame): don't reset Vframe_list.
      (init_frame_once_for_pdumper, init_frame_once): new functions.
      (syms_of_frame): remove redundant staticpro.
      * src/fringe.c (init_fringe_once_for_pdumper): new functin.
      (init_fringe_once): call it.
      * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper): new function.
      (syms_of_ftcrfont): call it.
      * src/ftfont.c (syms_of_ftfont_for_pdumper): new function.
      (syms_of_ftfont): call it.
      * src/ftxont.c (syms_of_ftxfont_for_pdumper): new function.
      (syms_of_ftxfont): call it.
      * src/gmalloc.c: adjust for pdumper througout
      (DUMPED): remove weird custom dumped indicator.
      * src/gnutls.c (syms_of_gnutls): pdumper note for
      gnutls_global_initialized.
      * src/image.c (syms_of_image): add pdumper comment,
      initializer note.
      * src/insdel.c (prepare_to_modify_buffer_1): account
      for buffer contents possibly being in dump image.
      * src/keyboard.c (syms_of_keyboard_for_pdumper): new function.
      (syms_of_keyboard): staticpro more; call pdumper syms function.
      * src/lisp.h: add comments throughout
      (gflags): declare.
      (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p)
      (dumped_with_pdumper_p, will_dump_with_unexec_p)
      (dumped_with_unexec_p, definitely_will_not_unexec_p): new
      functions.
      (POWER_OF_2, ROUNDUP): move macros.
      (PSEUDOVECTOR_TYPE, PSEUDOVECTOR_TYPEP): take vectorlike header
      pointer instead of vector; constify.
      (Lisp_Hash_Table): add comment about need to rehash on access; add
      comment for next_weak.
      (HASH_KEY, HASH_VALUE, HASH_HASH, HASH_TABLE_SIZE): const-ify.
      (hash_table_rehash): declare.
      (hash_rehash_needed_p, hash_rehash_if_needed): new functions.
      (finalizers, doomed_finalizers): declare extern.
      (SUBR_SECTION_ATTRIBUTE): new macro.
      (staticvec, staticidx): un-static-ify.
      (sweep_weak_hash_tables): remove declaration.
      (sweep_weak_table): declare.
      (hashfn_eql, hashfn_equal): declare.
      (number_finalizers_run): new variable.
      (Vdead): externify when ENABLE_CHECKING.
      (gc_root_type): new enumeration.
      (gc_root_visitor): new struct.
      (visit_static_gc_roots): declare.
      (vectorlike_nbytes): declare.
      (vector_nbytes): define as trivial inline function wrapper for
      vectorlike_nbytes.
      (init_obarray_once): change signature.
      (primary_thread): extern-ify.
      (init_buffer): change signature.
      (init_frame_once): declare.
      * src/lread.c (readevalloop): adjust for new dumped predicates.
      (init_obarray_once): new function.
      (ndefsubr): new variable.
      (defsubr): increment it.
      (load_path_check): adjust for pdumper.
      (load_path_default): use pdumper functions; adjust for
      dump search.
      * src/macfont.m (macfont_init_font_change_handler): avoid
      shadowing global.
      (syms_of_macfont_for_pdumper): new function.
      (syms_of_macfont): call it.
      * src/menu.c (syms_of_menu): staticpro more stuff.
      * src/minibuf.c (Ftry_completion): rehash if needed.
      (init_minibuf_once_for_pdumper): new function.
      (init_minibuf_once): call it.
      * src/nsfont.m (syms_of_nsfns): staticpro more.
      * src/nsfont.m (syms_of_nsfont_for_pdumper): new function.
      (syms_of_nsfont): call it.
      * src/nsterm.m (syms_of_nsfont): remember pdumper stuff.
      * src/pdumper.c: new file.
      * src/pdumper.h: new file.
      * src/process.c (init_process_emacs): use new pdumper functions
      instead of CANNOT_DUMP.
      * src/profiler.c (syms_of_profiler_for_pdumper): new function.
      (syms_of_profiler_for_pdumper): call it.
      * src/search.c (syms_of_search_for_pdumper): new function.
      (syms_of_search_for_pdumper): call it.
      * src/sheap.c (bss_sbrk_did_unexec): remove.
      * src/sheap.h (bss_sbrk_did_unexec): remove.
      * src/syntax.c (syms_of_syntax): don't redundantly staticpro
      re_match_object.
      * src/sysdep.c: use will_dump_with_unexec_p() instead of bss
      hack thing.
      * src/syssignals.h (init_sigsegv): declare.
      * src/systime.h (init_timefns): remove bool from signature.
      * src/textprop.c (syms_of_textprop): move staticpro.
      * src/thread.c (main_thread_p): constify.
      * src/thread.h (main_thread_p): constify.
      * src/timefns.c (init_timefns): remove bool from signature.
      (syms_of_timefns_for_pdumper): new function.
      (syms_of_timefns): call it.
      * src/w32.c: rearrange code.
      * src/w32.h (w32_relocate): declare.
      * src/w32fns.c (syms_of_w32fns): add pdumper note.
      * src/w32font.c (syms_of_w32font_for_pdumper): new function.
      (syms_of_w32font): call it.
      * src/w32heap.c (using_dynamic_heap): new variable.
      (init_heap): use it.
      * src/w32menu.c (syms_of_w32menu): add pdumper note.
      * src/w32proc.c
      (ctrl_c_handler, mainCRTStartup, _start, open_input_file)
      (rva_to_section, close_file_data): move here.
      * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper):
      new function.
      (syms_of_w32uniscribe): call it.
      * src/window.c (init_window_once_for_pdumper): new function.
      (init_window_once): call it; staticpro more stuff.
      * src/xfont.c (syms_of_xfont_for_pdumper): new function.
      (syms_of_xfont): call it.
      * src/xftfont.c (syms_of_xftfont_for_pdumper): new function.
      (syms_of_xftfont): call it.
      * src/xmenu.c (syms_of_xmenu_for_pdumper): new function.
      (syms_of_xmenu): call it.
      * src/xselect.c (syms_of_xselect_for_pdumper): new function.
      (syms_of_xselect): call it.
      * src/xsettings.c (syms_of_xsettings): add more pdumper notes.
      * src/term.c (syms_of_xterm): add pdumper note.
      
      * src/dispnew.c (init_faces_initial): new function.
      (init_display_interactive): rename from init_display; use
      will_dump_p instead of !initialized.  Initialize faces early for
      pdumper if needed.
      (init_display): new function.
      (syms_of_display_for_pdumper): new function.
      (syms_of_display): call it.
      
      * src/dbusbind.c (syms_of_dbusbind): Add TODO for bus reset
      on pdumper load.
      
      * src/data.c (Fdefalias): Use will_dump_p
      instead of Vpurify_flag.
      (Fmake_variable_buffer_local): silence compiler warning with -Og
      by making valcontents UNINIT.
      (arith_driver): silence compiler warning with UNINIT.
      
      * src/conf_post.h (ATTRIBUTE_SECTION): new macro.
      
      * src/composite.c (composition_gstring_put_cache): rehash hash
      table if needed.
      
      * src/coding.c (init_coding_once, syms_of_coding): remember
      pdumper stuff.
      
      * src/charset.h (charset_table_size, charset_table_user): declare.
      
      * src/charset.c (charset_table_used, charset_table_size): un-static.
      (init_charset_oncem, syms_of_charset): remember pdumper stuff.
      
      * src/category.c (category_table_version): remove obsolete
      variable.
      
      * src/callint.c (syms_of_callint): staticpro 'preserved_fns'
      (init_callproc): use will_dump_p instead of !CANNOT_DUMP.
      
      * src/bytecode.c (exec_byte_code): rehash table tables if needed
      
      * src/buffer.c (alloc_buffer_text, free_buffer_text): account for
      pdumper
      (init_buffer_once): add TODO; remember stuff for pdumper.
      (init_buffer): don't take initialized argument; adjust
      for pdumper.
      
      * src/atimer.c (init_atimer): initialize subr only if
      !initialized.
      
      * src/alloc.c: (vector_marked_p, set_vector_marked)
      (vectorlike_marked_p, set_vectorlike_marked, cons_marked_p)
      (set_cons_marked, string_marked_p, set_string_marked)
      (symbol_marked_p, set_symbol_marked, interval_marked_p)
      (set_interval_marked): new accessor routines.  Use them
      instead of raw GC access throughout.
      (Vdead): make non-static when ENABLE_CHECKING.
      (vectorlike_nbytes): rename of 'vector_nbytes'; take a vectorlike
      header as input instead of a vector.
      (number_finalizers_run): new internal C variable.
      (mark_maybe_object): check for pdumper objects.
      (valid_pointer_p): don't be gratuitously inefficient under rr(1).
      (make_pure_c_string): add support for size_byte = -2 mode
      indicating that string data points into Emacs image rodata.
      (visit_vectorlike_root): visits GC roots embedded in
      vectorlike objects.
      (visit_buffer_root): visits GC roots embedded in
      our totally-not-a-buffer buffer global objects.
      (visit_static_gc_roots): visit GC roots in the Emacs data section.
      (mark_object_root_visitor): root callback used for conventional GC
      marking
      (weak_hash_tables): new internal variable for tracking found weak
      hash tables during GC.
      (mark_and_sweep_weak_table_contents): new weak hash table marking.
      (garbage_collect_1): use new GC root visitor machinery.
      (mark_vectorlike): accept a vectorlike_header instead of a
      Lisp_Vector.
      (mark_frame, mark_window, mark_hash_table): new functions.
      (mark_object): initialize 'm'; check for pdumper objects and use
      new mark-bit accessors throughout.  Remove some object-specific
      marking code and move to helper functions above.
      (survives_gc_p): check for pdumper objects.
      (gc-sweep): clear pdumper mark bits.
      (init_alloc_once_for_pdumper): new helper function for early init
      called both during normal init and pdumper load.
      (init_alloc_once): pdumper integration.
      
      * src/Makefile.in: Rewrite dumping for pdumper; add pdumper.o;
      invoke temacs with --temacs command line option; build dmpstruct.h
      from dmpstruct.awk; stop relying on CANNOT_DUMP; clean up pdumper
      intermediate files during build.
      
      * nextstep/Makefile.in: build emacs.pdmp into NS packages
      
      * lisp/startup.el: account for new '--temacs' and '--dump-file'
      command line option.
      
      * lisp/loadup.el: rewrite early init to account for pdumper; use
      injected 'dump-mode' variable (set via the new '--temacs' option)
      instead of parsing command line.
      
      * lisp/cus-start.el: Check 'dump-mode' instead of 'purify-flag',
      since the new 'dump-mode'
      
      * lib-src/make-fingerprint.c: new program
      
      * lib-src/Makefile.in: built make-fingerprint utility program
      
      * configure.ac: Add --with-pdumper toggle to control pdumper
      support; add --with-unexec toggle to control unexec support.
      Add --with-dumping option to control which dumping strategy we use
      by default.  Adjust for pdumper throughout.  Check for
      posix_madvise.
      
      * Makefile.in: Add @DUMPING@ substitution; add pdumper mode.
      
      * .gitignore: Add make-fingerprint, temacs.in, fingerprint.c,
      dmpstruct.h, and pdumper dump files.
      d12e5d00
  9. 01 Jan, 2019 1 commit
  10. 15 Oct, 2018 1 commit
    • Paul Eggert's avatar
      Update lib/regex from glibc via Gnulib · 3d91dc1b
      Paul Eggert authored
      This syncs recent refactorings from glibc, and incorporates:
      2018-10-15 libc-config: merge from glibc
      2018-10-15 regex: depend on libc-config
      * .gitignore: Do not ignore m4/_*.m4.
      * lib/cdefs.h: New file, copied from Gnulib.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * lib/libc-config.h, m4/__inline.m4: New files, copied from Gnulib.
      * lib/regcomp.c, lib/regex.c, lib/regex_internal.c:
      * lib/regex_internal.h, lib/regexec.c:
      Copy from glibc via Gnulib.
      3d91dc1b
  11. 02 Aug, 2018 1 commit
    • Paul Eggert's avatar
      Substitute a <ieee754.h> on hosts lacking it · d216d7d2
      Paul Eggert authored
      * .gitignore: Add lib/ieee754.h.
      * admin/merge-gnulib (GNULIB_MODULES): Add ieee754-h.
      * configure.ac: Remove ieee754.h check, as Gnulib now does that.
      * etc/NEWS: Mention this.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * lib/ieee754.in.h, m4/ieee754-h.m4: New files, from Gnulib.
      * src/lisp.h (IEEE_FLOATING_POINT): Now a macro so that it
      can be used in #if.
      * src/lread.c, src/print.c: Include <ieee754.h> if
      IEEE_FLOATING_POINT, not if HAVE_IEEE754_H.
      * src/lread.c (string_to_number):
      * src/print.c (float_to_string):
      Process NaNs only on IEEE hosts, and assume <ieee754.h>
      in that case.
      d216d7d2
  12. 23 Feb, 2018 2 commits
  13. 01 Jan, 2018 1 commit
  14. 13 Sep, 2017 1 commit
    • Paul Eggert's avatar
      Prefer HTTPS to FTP and HTTP in documentation · bc511a64
      Paul Eggert authored
      Most of this change is to boilerplate commentary such as license URLs.
      This change was prompted by ftp://ftp.gnu.org's going-away party,
      planned for November.  Change these FTP URLs to https://ftp.gnu.org
      instead.  Make similar changes for URLs to other organizations moving
      away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
      fsf.org when this works, as this will further help defend against
      man-in-the-middle attacks (for this part I omitted the MS-DOS and
      MS-Windows sources and the test tarballs to keep the workload down).
      HTTPS is not fully working to lists.gnu.org so I left those URLs alone
      for now.
      bc511a64
  15. 29 Jul, 2017 1 commit
  16. 28 Jul, 2017 1 commit
  17. 24 Jul, 2017 1 commit
  18. 17 Jun, 2017 1 commit
  19. 12 Jun, 2017 1 commit
    • Philipp Stephani's avatar
      Use Autoconf to generate the test module Makefile · c90a97ad
      Philipp Stephani authored
      This makes it easier to pass compilation flags around.
      
      * configure.ac: Also build test module Makefile.
      
      * test/data/emacs-module/Makefile.in: New makefile template.
      
      * test/Makefile.in ($(test_module)): No longer necessary to pass
      @MODULES_SUFFIX@ around.
      
      * .gitignore: Test module Makefile can now be ignored.
      c90a97ad
  20. 19 May, 2017 1 commit
    • Paul Eggert's avatar
      Minor .gitignore fixes · 7ff8c5ca
      Paul Eggert authored
      * .gitignore: modules/mod-test/Makefile was renamed to
      test/data/emacs-module/Makefile.
      Omit [0-9]*.core, subsumed by *.core.
      test/indent/*.new was renamed to test/manual/indent/*.new.
      Add *.swp, for Vim.
      7ff8c5ca
  21. 09 Apr, 2017 1 commit
    • Paul Eggert's avatar
      Merge from gnulib (Bug#26398) · 43bc45ba
      Paul Eggert authored
      This incorporates:
      2017-04-08 getopt: prefer - to _ in new file names
      2017-04-08 getopt: port recent getopt changes to macOS
      * .gitignore: Add lib/getopt-cdefs.h.
      * lib/getopt-cdefs.in.h: Rename from lib/getopt_cdefs.in.h.
      * lib/getopt-core.h: Rename from lib/getopt_core.h.
      * lib/getopt-ext.h: Rename from lib/getopt_ext.h.
      * lib/getopt-pfx-core.h: Rename from lib/getopt_pfx_core.h.
      * lib/getopt-pfx-ext.h: Rename from lib/getopt_pfx_ext.h.
      * lib/getopt.in.h, lib/unistd.in.h, m4/getopt.m4:
      Copy from Gnulib.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      43bc45ba
  22. 01 Apr, 2017 1 commit
    • Paul Eggert's avatar
      Simplify test dependency generation · ac2ca82e
      Paul Eggert authored
      Generate default dependencies by using GNU extensions to ‘make’
      rather than via a hacky auxiliary program and script.
      * .gitignore: Remove test/make-test-deps.mk.
      * test/Makefile.in (ELFILES, LOGFILES, TESTS):
      Use :=, not =, to avoid multiple redundant invocations of ‘find’.
      (test_template): Infer dependency directly instead of via
      make-test-deps.mk.
      (check-doit): Prepend ‘@’ to avoid excessively long ‘make’ output.
      (clean): No need to clean make-test-deps.mk.
      (make-test-deps.mk): Remove rule.
      * test/make-test-deps.emacs-lisp: Remove.
      ac2ca82e
  23. 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
  24. 14 Mar, 2017 1 commit
    • Paul Eggert's avatar
      Merge from gnulib · fac0bb9c
      Paul Eggert authored
      This incorporates:
      2017-03-14 snippets: move unadjusted snippet sources to lib
      2017-03-14 gnulib-tool: fix typo in comment output
      2017-03-14 snippets: work around GNU Make 3.82 VPATH
      2017-03-13 gnulib-tool: minor --gnu-make fixups
      2017-03-12 gnulib-tool: new option --gnu-make
      * .gitignore: Remove lib/arg-nonnull.h, lib/c++defs.h,
      lib/warn-on-use.h.  Change exception from
      build-aux/snippet/_Noreturn.h to lib/_Noreturn.h.
      * admin/authors.el (authors-renamed-files-regexps):
      * admin/notes/copyright, make-dist:
      The snippet files moved from build-aux/snippet to lib.
      * lib/_Noreturn.h: Rename from build-aux/snippet/_Noreturn.h.
      * lib/arg-nonnull.h: Rename from build-aux/snippet/arg-nonnull.h.
      * lib/c++defs.h: Rename from build-aux/snippet/c++defs.h.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/warn-on-use.h: Rename from build-aux/snippet/warn-on-use.h.
      fac0bb9c
  25. 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
  26. 01 Jan, 2017 1 commit
  27. 15 Dec, 2016 1 commit
    • Paul Eggert's avatar
      Merge from gnulib · 5942af61
      Paul Eggert authored
      This incorporates:
      2016-12-14 xalloc-oversized: check for PTRDIFF_MAX too
      2016-12-12 fpending: port to native Windows with MSVC
      * .gitignore: Do not ignore lib/stdio-impl.h.
      * lib/fpending.c, lib/xalloc-oversized.h, m4/fpending.m4:
      Copy from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/stdio-impl.h:
      New file, copied from gnulib.
      * nt/gnulib.mk (EXTRA_DIST): Add stdio-impl.h.
      5942af61
  28. 15 Sep, 2016 1 commit
    • Paul Eggert's avatar
      Update from gnulib · 8f4b6a20
      Paul Eggert authored
      This incorporates:
      2016-09-15 stdint: support new _WIDTH macros
      2016-09-15 limits-h: new module
      2016-09-15 sys_types: avoid glibc 2.25 warnings about major()
      2016-09-15 extensions: port to more ISO C TSes
      2016-09-13 intprops: new macro TYPE_WIDTH
      2016-09-13 extensions: port to recent ISO C TRs
      * .gitignore: Add lib/limits.h.
      * doc/misc/texinfo.tex, lib/ftoastr.h, lib/intprops.h:
      * lib/stdint.in.h, m4/extensions.m4, m4/stdint.m4, m4/stdio_h.m4:
      * m4/sys_types_h.m4: Copy from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/limits.in.h, m4/limits-h.m4: New files, copie from gnulib.
      * nt/gnulib.mk: Merge changes from lib/gnulib.mk.
      8f4b6a20
  29. 02 May, 2016 1 commit
    • Paul Eggert's avatar
      Tweak .gitignore · fa51e91e
      Paul Eggert authored
      * .gitignore: Remove leim/changed.misc, leim/changed.tit,
      as these files are no longer created.  Add gmon.out, for
      -pg profiling.  Sort.
      fa51e91e
  30. 05 Jan, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix fallout from merging emacs-25 branch in test/ · 6a311d20
      Eli Zaretskii authored
      * .gitignore: Update for the new place of biditest.txt.
      * test/automated/: Directory removed.  All files moved to their
      proper places.
      * test/etags/: Directory removed.  All files moved to their proper
      places.
      * test/automated/url-parse-tests.el: File removed; it was an exact
      copy of the same file in test/lisp/url/.
      * test/automated/url-expand-tests.el: Moved to test/lisp/url/.
      6a311d20
  31. 04 Jan, 2016 1 commit
  32. 01 Jan, 2016 1 commit
  33. 30 Nov, 2015 1 commit
    • Phillip Lord's avatar
      Tests now depend on source files · 0baf45db
      Phillip Lord authored
       * test/Makefile.in: Include dependences from tests to source files.
       * test/make-test-deps.emacs-lisp: New file
       * .gitignore: Ignore generated make include file
      0baf45db
  34. 28 Nov, 2015 1 commit
  35. 24 Nov, 2015 1 commit
    • Phillip Lord's avatar
      Restore delete Makefiles and fix .gitignore. · a546a37f
      Phillip Lord authored
       * .gitignore: Update Makefiles to changed locations
       * test/lisp/progmodes/flymake-resources/Makefile,
         test/manual/etags/Makefile,
         test/manual/etags/make-src/Makefile,
         test/manual/indent/Makefile: Restored and moved to new location.
      a546a37f
  36. 19 Nov, 2015 1 commit