diff options
Diffstat (limited to 'lisp/Makefile.in')
-rw-r--r-- | lisp/Makefile.in | 139 |
1 files changed, 56 insertions, 83 deletions
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index d29dec08a5e..9516f2fc364 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -59,15 +59,6 @@ BYTE_COMPILE_EXTRA_FLAGS = # BYTE_COMPILE_EXTRA_FLAGS = --eval '(setq byte-compile-warnings (quote (not unresolved)))' # The example above is just for developers, it should not be used by default. -# Those automatically generated autoload files that need special rules -# to build; i.e. not including things created via generated-autoload-file -# (eg calc/calc-loaddefs.el). -LOADDEFS = $(lisp)/calendar/cal-loaddefs.el \ - $(lisp)/calendar/diary-loaddefs.el \ - $(lisp)/calendar/hol-loaddefs.el \ - $(lisp)/mh-e/mh-loaddefs.el \ - $(lisp)/net/tramp-loaddefs.el - # All generated autoload files. loaddefs = $(shell find ${srcdir} -name '*loaddefs.el' ! -name '.*') # Elisp files auto-generated. @@ -76,14 +67,20 @@ AUTOGENEL = ${loaddefs} ${srcdir}/cus-load.el ${srcdir}/finder-inf.el \ # Set load-prefer-newer for the benefit of the non-bootstrappers. BYTE_COMPILE_FLAGS = \ - --eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS) + --eval "(setq load-prefer-newer t byte-compile-warnings 'all)" \ + $(BYTE_COMPILE_EXTRA_FLAGS) +# ... but we must prefer .elc files for those in the early bootstrap. +# A larger `max-specpdl-size' is needed for emacs-lisp/comp.el. +compile-first: BYTE_COMPILE_FLAGS = \ + --eval '(setq max-specpdl-size 5000)' $(BYTE_COMPILE_EXTRA_FLAGS) # Files to compile before others during a bootstrap. This is done to # speed up the bootstrap process. They're ordered by size, so we use -# the slowest-compiler on the smallest file and move to larger files as the -# compiler gets faster. 'autoload.elc' comes last because it is not used by -# the compiler (so its compilation does not speed up subsequent compilations), -# it's only placed here so as to speed up generation of the loaddefs.el file. +# the slowest-compiler on the smallest file and move to larger files +# as the compiler gets faster. 'loaddefs-gen.elc'/'radix-tree.el' +# comes last because they're not used by the compiler (so its +# compilation does not speed up subsequent compilations), it's only +# placed here so as to speed up generation of the loaddefs.el files. COMPILE_FIRST = \ $(lisp)/emacs-lisp/macroexp.elc \ @@ -94,18 +91,24 @@ ifeq ($(HAVE_NATIVE_COMP),yes) COMPILE_FIRST += $(lisp)/emacs-lisp/comp.elc COMPILE_FIRST += $(lisp)/emacs-lisp/comp-cstr.elc endif -COMPILE_FIRST += $(lisp)/emacs-lisp/autoload.elc +COMPILE_FIRST += $(lisp)/emacs-lisp/loaddefs-gen.elc +COMPILE_FIRST += $(lisp)/emacs-lisp/radix-tree.elc # Files to compile early in compile-main. Works around bug#25556. +# Also compile the ja-dic file used to convert the Japanese dictionary +# to speed things up. The org files are used to convert org files to +# texi files. MAIN_FIRST = ./emacs-lisp/eieio.el ./emacs-lisp/eieio-base.el \ - ./cedet/semantic/db.el ./emacs-lisp/cconv.el + ./cedet/semantic/db.el ./emacs-lisp/cconv.el \ + ./international/ja-dic-cnv.el \ + ./org/ox.el ./org/ox-texinfo.el ./org/org-macro.el ./org/org-element.el \ + ./org/oc.el ./org/ol.el ./emacs-lisp/cl-lib.el # Prevent any settings in the user environment causing problems. -unexport EMACSDATA EMACSDOC EMACSPATH +unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH # The actual Emacs command run in the targets below. -# Prevent any setting of EMACSLOADPATH in user environment causing problems. -emacs = EMACSLOADPATH= '$(EMACS)' $(EMACSOPT) +emacs = '$(EMACS)' $(EMACSOPT) ## Subdirectories, relative to builddir. SUBDIRS = $(sort $(shell find ${srcdir} -type d -print)) @@ -122,10 +125,12 @@ SUBDIRS_SUBDIRS = $(filter-out ${srcdir}/cedet% ${srcdir}/leim%,${SUBDIRS}) # cus-load and finder-inf are not explicitly requested by anything, so # we add them here to make sure they get built. -all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el +all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el generate-ja-dic \ + org-manuals PHONY_EXTRAS = -.PHONY: all custom-deps finder-data autoloads update-subdirs $(PHONY_EXTRAS) +.PHONY: all custom-deps finder-data autoloads update-subdirs $(PHONY_EXTRAS) \ + generate-ja-dic org-manuals # custom-deps and finder-data both used to scan _all_ the *.el files. # This could lead to problems in parallel builds if automatically @@ -156,6 +161,14 @@ $(lisp)/finder-inf.el: --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(srcdir)/finder-inf.el"))' \ -f finder-compile-keywords-make-dist ${SUBDIRS_FINDER} +# This is the OKURO-NASI compilation trigger. +generate-ja-dic: main-first + $(AM_V_at)$(MAKE) -C ../leim generate-ja-dic EMACS="$(EMACS)" + $(AM_V_at)$(MAKE) compile-targets TARGETS="./leim/ja-dic/ja-dic.elc" + +org-manuals: main-first + $(AM_V_at)$(MAKE) -C ../doc/misc org.texi modus-themes.texi + ## Comments on loaddefs generation: # loaddefs depends on gen-lisp for two reasons: @@ -164,6 +177,9 @@ $(lisp)/finder-inf.el: # gets created before the final emacs is dumped. Having leim # dependencies in ../src as well would create a parallel race condition. # +# FIXME: 2) is no longer correct, so perhaps we could add unidata to +# gen-lisp now? +# # 2) Files that are marked no-update-autoloads still get recorded in loaddefs. # So those files should be generated before we make autoloads, if we # don't want a successive make autoloads to change the output file. @@ -183,19 +199,13 @@ $(lisp)/finder-inf.el: # We make $(lisp)/loaddefs.el a dependency of .PHONY to cause Make to # ignore its time stamp. That's because the real dependencies of # loaddefs.el aren't known to Make, they are implemented in -# batch-update-autoloads, which only updates the autoloads whose -# sources have changed. - -# Use expand-file-name rather than $abs_scrdir so that Emacs does not -# get confused when it compares file-names for equality. +# loaddefs-generate--emacs-batch. autoloads .PHONY: $(lisp)/loaddefs.el -$(lisp)/loaddefs.el: gen-lisp $(LOADDEFS) - $(AM_V_GEN)$(emacs) -l autoload \ - --eval '(setq autoload-ensure-writable t)' \ - --eval '(setq autoload-builtin-package-versions t)' \ - --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$@")))' \ - -f batch-update-autoloads ${SUBDIRS_ALMOST} +$(lisp)/loaddefs.el: gen-lisp $(LOADDEFS) $(lisp)/emacs-lisp/loaddefs-gen.elc + $(AM_V_GEN)$(emacs) \ + -l $(lisp)/emacs-lisp/loaddefs-gen.elc \ + -f loaddefs-generate--emacs-batch ${SUBDIRS_ALMOST} # autoloads only runs when loaddefs.el is nonexistent, although it # generates a number of different files. Provide a force option to enable @@ -304,9 +314,23 @@ endif # An old-fashioned suffix rule, which, according to the GNU Make manual, # cannot have prerequisites. ifeq ($(HAVE_NATIVE_COMP),yes) +ifeq ($(ANCIENT),yes) +# The first compilation of compile-first, using an interpreted compiler: +# The resulting .elc files get given a date of 1971-01-01 so that their +# date stamp is earlier than the source files, causing these to be compiled +# into native code at the second recursive invocation of this $(MAKE), +# using these .elc's. This is faster than just compiling the native code +# directly using the interpreted compile-first files. (Note: 1970-01-01 +# fails on some systems.) +.el.elc: + $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \ + -l comp -f batch-byte-compile $< + touch -t 197101010000 $@ +else .el.elc: $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) \ -l comp -f batch-byte+native-compile $< +endif else .el.elc: $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $< @@ -439,57 +463,6 @@ compile-one-process: $(LOADDEFS) compile-first $(emacs) $(BYTE_COMPILE_FLAGS) \ --eval "(batch-byte-recompile-directory 0)" $(lisp) -# Update MH-E internal autoloads. These are not to be confused with -# the autoloads for the MH-E entry points, which are already in loaddefs.el. -MH_E_DIR = $(lisp)/mh-e -MH_E_SRC = $(sort $(wildcard ${MH_E_DIR}/mh*.el)) -MH_E_SRC := $(filter-out ${MH_E_DIR}/mh-loaddefs.el,${MH_E_SRC}) - -.PHONY: mh-autoloads -mh-autoloads: $(MH_E_DIR)/mh-loaddefs.el -$(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC) - $(AM_V_GEN)$(emacs) -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ - -f batch-update-autoloads $(MH_E_DIR) - -# Update TRAMP internal autoloads. Maybe we could move tramp*.el into -# an own subdirectory. OTOH, it does not hurt to keep them in -# lisp/net. -TRAMP_DIR = $(lisp)/net -TRAMP_SRC = $(sort $(wildcard ${TRAMP_DIR}/tramp*.el)) -TRAMP_SRC := $(filter-out ${TRAMP_DIR}/tramp-loaddefs.el,${TRAMP_SRC}) - -$(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) - $(AM_V_GEN)$(emacs) -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###tramp-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ - -f batch-update-autoloads $(TRAMP_DIR) - -CAL_DIR = $(lisp)/calendar -## Those files that may contain internal calendar autoload cookies. -CAL_SRC = $(addprefix ${CAL_DIR}/,diary-lib.el holidays.el lunar.el solar.el) -CAL_SRC := $(sort ${CAL_SRC} $(wildcard ${CAL_DIR}/cal-*.el)) -CAL_SRC := $(filter-out ${CAL_DIR}/cal-loaddefs.el,${CAL_SRC}) - -$(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC) - $(AM_V_GEN)$(emacs) -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ - -f batch-update-autoloads $(CAL_DIR) - -$(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) $(CAL_DIR)/cal-loaddefs.el - $(AM_V_GEN)$(emacs) -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ - -f batch-update-autoloads $(CAL_DIR) - -$(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) $(CAL_DIR)/diary-loaddefs.el - $(AM_V_GEN)$(emacs) -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ - -f batch-update-autoloads $(CAL_DIR) - .PHONY: bootstrap-clean distclean maintainer-clean bootstrap-clean: |