mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-24 07:20:29 +00:00
Makefile: enable one-process-per-source compilations again
* default.mk: Re-introduce ELC for single file compilation. * targets.mk: New targets compile-single and compile-single-source that get handed off to lisp/Makefile. * lisp/Makefile: Implement pattern rule using $(ELC). Implement target compile-single that uses a separate Emacs process for each target by invoking the pattern rule. Implement target compile-single-source that additionally removes the compiled file directly after it has been produced, so compilation will always use source files only, never byte-compiled files. * Makefile: Document new targets. These new targets are meant to check for problems with interdependencies in Org.
This commit is contained in:
parent
9d045b21bb
commit
b9916f2e2b
98
Makefile
98
Makefile
@ -18,84 +18,86 @@ help helpall::
|
||||
$(info Getting Help)
|
||||
$(info ============)
|
||||
$(info )
|
||||
$(info make help - show brief help)
|
||||
$(info make targets - ditto)
|
||||
$(info make helpall - show extended help)
|
||||
$(info make help - show brief help)
|
||||
$(info make targets - ditto)
|
||||
$(info make helpall - show extended help)
|
||||
$(info )
|
||||
$(info Build and Check)
|
||||
$(info ===============)
|
||||
$(info make - build Org ELisp and all documentation)
|
||||
$(info make all - ditto)
|
||||
$(info make compile - build Org ELisp files)
|
||||
$(info make autoloads - create org-install.el to load org in-place)
|
||||
$(info make check - build Org ELisp files and run test suite)
|
||||
$(info make - build Org ELisp and all documentation)
|
||||
$(info make all - ditto)
|
||||
$(info make compile - build Org ELisp files)
|
||||
$(info make autoloads - create org-install.el to load org in-place)
|
||||
$(info make check - build Org ELisp files and run test suite)
|
||||
helpall::
|
||||
$(info make test - ditto)
|
||||
$(info make compile-dirty - build only stale Org ELisp files)
|
||||
$(info make test-dirty - check without building first)
|
||||
$(info make test - ditto)
|
||||
$(info make compile-dirty - build only stale Org ELisp files)
|
||||
$(info make compile-single - build using one Emacs process per file)
|
||||
$(info make compile-source - ditto, but immediately remove byte-compiled file )
|
||||
$(info make test-dirty - check without building first)
|
||||
$(info )
|
||||
$(info Compatibility)
|
||||
$(info =============)
|
||||
$(info make oldorg - what the old make did: compile autoloads info)
|
||||
$(info make oldorg - what the old make did: compile autoloads info)
|
||||
$(info )
|
||||
$(info Convenience)
|
||||
$(info ===========)
|
||||
$(info make up0 - pull from upstream)
|
||||
$(info make up1 - pull from upstream, build and check)
|
||||
$(info make up2 - pull from upstream, build, check and install)
|
||||
$(info make update - pull from upstream and build)
|
||||
$(info make update2 - pull from upstream, build and install)
|
||||
$(info make uncompiled - combine cleanlisp and autoloads)
|
||||
$(info make local.mk - create new local.mk as template for adaptation)
|
||||
$(info make up0 - pull from upstream)
|
||||
$(info make up1 - pull from upstream, build and check)
|
||||
$(info make up2 - pull from upstream, build, check and install)
|
||||
$(info make update - pull from upstream and build)
|
||||
$(info make update2 - pull from upstream, build and install)
|
||||
$(info make uncompiled - combine cleanlisp and autoloads)
|
||||
$(info make local.mk - create new local.mk as template for adaptation)
|
||||
$(info )
|
||||
$(info Cleaning)
|
||||
$(info ========)
|
||||
$(info make clean - remove built Org ELisp files and documentation)
|
||||
$(info make cleanall - remove everything that can be built and all remnants)
|
||||
$(info make cleandirs - clean in etc/, lisp/ and doc/)
|
||||
$(info make cleancontrib - remove remnants in contrib/)
|
||||
$(info make cleantesting - remove remnants in testing/)
|
||||
$(info make cleanutils - remove remnants in UTILITIES/)
|
||||
$(info make cleandoc - remove built documentation)
|
||||
$(info make cleandocs - ditto)
|
||||
$(info make cleanlisp - remove built Org ELisp files)
|
||||
$(info make cleanelc - ditto)
|
||||
$(info make cleantest - remove test directory)
|
||||
$(info make clean-install - remove previous Org installation)
|
||||
$(info make clean - remove built Org ELisp files and documentation)
|
||||
$(info make cleanall - remove everything that can be built and all remnants)
|
||||
$(info make cleandirs - clean in etc/, lisp/ and doc/)
|
||||
$(info make cleancontrib - remove remnants in contrib/)
|
||||
$(info make cleantesting - remove remnants in testing/)
|
||||
$(info make cleanutils - remove remnants in UTILITIES/)
|
||||
$(info make cleandoc - remove built documentation)
|
||||
$(info make cleandocs - ditto)
|
||||
$(info make cleanlisp - remove built Org ELisp files)
|
||||
$(info make cleanelc - ditto)
|
||||
$(info make cleantest - remove test directory)
|
||||
$(info make clean-install - remove previous Org installation)
|
||||
$(info )
|
||||
$(info Configuration Check)
|
||||
$(info ===================)
|
||||
help helpall::
|
||||
$(info make config - check main configuration)
|
||||
$(info make config - check main configuration)
|
||||
helpall::
|
||||
$(info make config-test - check test configuration)
|
||||
$(info make config-exe - check executables configuration)
|
||||
$(info make config-cmd - check command configuration)
|
||||
$(info make config-all - check all configuration)
|
||||
$(info make config-eol - check all configuration, mark end-of-line)
|
||||
$(info make config-test - check test configuration)
|
||||
$(info make config-exe - check executables configuration)
|
||||
$(info make config-cmd - check command configuration)
|
||||
$(info make config-all - check all configuration)
|
||||
$(info make config-eol - check all configuration, mark end-of-line)
|
||||
$(info )
|
||||
$(info Documentation)
|
||||
$(info =============)
|
||||
help helpall::
|
||||
$(info make doc - build all documentation)
|
||||
$(info make doc - build all documentation)
|
||||
helpall::
|
||||
$(info make docs - ditto)
|
||||
$(info make docs - ditto)
|
||||
help helpall::
|
||||
$(info make info - build Info documentation)
|
||||
$(info make info - build Info documentation)
|
||||
helpall::
|
||||
$(info make html - build HTML documentation)
|
||||
$(info make pdf - build PDF documentation)
|
||||
$(info make card - build reference cards)
|
||||
$(info make refcard - ditto)
|
||||
$(info make html - build HTML documentation)
|
||||
$(info make pdf - build PDF documentation)
|
||||
$(info make card - build reference cards)
|
||||
$(info make refcard - ditto)
|
||||
help helpall::
|
||||
$(info )
|
||||
$(info Installation)
|
||||
$(info ============)
|
||||
$(info make install - build and install Org)
|
||||
$(info make install - build and install Org)
|
||||
helpall::
|
||||
$(info make install-etc - build and install files in /etc)
|
||||
$(info make install-lisp - build and install Org Elisp files)
|
||||
$(info make install-info - build and install Info documentation)
|
||||
$(info make install-etc - build and install files in /etc)
|
||||
$(info make install-lisp - build and install Org Elisp files)
|
||||
$(info make install-info - build and install Info documentation)
|
||||
help helpall::
|
||||
@echo ""
|
||||
|
||||
|
@ -90,6 +90,10 @@ MAKE_ORG_VERSION = $(BATCHL) \
|
||||
ELCDIR = $(BATCHL) \
|
||||
--eval '(batch-byte-recompile-directory 0)'
|
||||
|
||||
# How to byte-compile a single file
|
||||
ELC = $(BATCHL) \
|
||||
--eval '(batch-byte-compile)'
|
||||
|
||||
# How to make a pdf file from a texinfo file
|
||||
TEXI2PDF = texi2pdf --batch --clean
|
||||
|
||||
|
@ -10,7 +10,7 @@ LISPA = $(LISPV) $(LISPI)
|
||||
LISPF = $(filter-out $(LISPA),$(wildcard *.el))
|
||||
LISPC = $(filter-out $(LISPN:%el=%elc),$(LISPF:%el=%elc))
|
||||
|
||||
.PHONY: all compile compile-dirty \
|
||||
.PHONY: all compile compile-dirty compile-single \
|
||||
autoloads \
|
||||
install clean cleanauto cleanall clean-install
|
||||
|
||||
@ -18,6 +18,12 @@ LISPC = $(filter-out $(LISPN:%el=%elc),$(LISPF:%el=%elc))
|
||||
all compile:: autoloads
|
||||
all compile compile-dirty:: $(LISPI) $(LISPV)
|
||||
$(ELCDIR)
|
||||
compile-single: clean autoloads $(LISPC)
|
||||
compile-source: clean autoloads
|
||||
@$(foreach elc,$(LISPC),$(MAKE) $(elc) && $(RM) $(elc);)
|
||||
|
||||
%.elc: %.el
|
||||
-$(ELC) $(<)
|
||||
|
||||
autoloads: cleanauto $(LISPI) $(LISPV)
|
||||
|
||||
|
@ -28,7 +28,7 @@ endif
|
||||
cleancontrib cleantesting cleanutils
|
||||
cleanrel clean-install cleanelc cleandirs \
|
||||
cleanlisp cleandoc cleandocs cleantest \
|
||||
compile compile-dirty uncompiled \
|
||||
compile compile-single compile-source compile-dirty uncompiled \
|
||||
config config-test config-exe config-all config-eol
|
||||
|
||||
CONF_BASE = EMACS DESTDIR
|
||||
@ -75,7 +75,7 @@ local.mk:
|
||||
|
||||
all compile::
|
||||
$(foreach dir, doc lisp, $(MAKE) -C $(dir) clean;)
|
||||
compile compile-dirty::
|
||||
compile compile-dirty compile-single compile-source::
|
||||
$(MAKE) -C lisp $@
|
||||
all clean-install::
|
||||
$(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) $@;)
|
||||
|
Loading…
Reference in New Issue
Block a user