-include config.mk PKG = with-editor ELS = $(PKG).el ELCS = $(ELS:.el=.elc) DEPS = dash VERSION ?= $(shell test -e $(TOP).git && git describe --tags --abbrev=0 | cut -c2-) EMACS ?= emacs EMACS_ARGS ?= EMACS_ARGS += --eval '(setq with-editor-emacsclient-executable nil)' LOAD_PATH ?= $(addprefix -L ../,$(DEPS)) LOAD_PATH += -L . ifndef ORG_LOAD_PATH ORG_LOAD_PATH = -L ../dash ORG_LOAD_PATH += -L ../org/lisp ORG_LOAD_PATH += -L ../org/contrib/lisp ORG_LOAD_PATH += -L ../ox-texinfo+ endif INSTALL_INFO ?= $(shell command -v ginstall-info || printf install-info) MAKEINFO ?= makeinfo MANUAL_HTML_ARGS ?= --css-ref /assets/page.css all: lisp info doc: info html html-dir pdf help: $(info make all - generate lisp and manual) $(info make doc - generate most manual formats) $(info make lisp - generate byte-code and autoloads) $(info make texi - generate texi manual (see comments)) $(info make info - generate info manual) $(info make html - generate html manual file) $(info make html-dir - generate html manual directory) $(info make pdf - generate pdf manual) $(info make authors - generate AUTHORS.md) $(info make publish - publish snapshot manuals) $(info make release - publish release manuals) $(info make clean - remove most generated files) lisp: $(ELCS) loaddefs loaddefs: $(PKG)-autoloads.el %.elc: %.el @printf "Compiling $<\n" @$(EMACS) -Q --batch $(EMACS_ARGS) $(LOAD_PATH) -f batch-byte-compile $< info: $(PKG).info dir html: $(PKG).html pdf: $(PKG).pdf ORG_ARGS = --batch -Q $(ORG_LOAD_PATH) -l ox-extra -l ox-texinfo+.el ORG_EVAL = --eval "(ox-extras-activate '(ignore-headlines))" ORG_EVAL += --eval "(setq indent-tabs-mode nil)" ORG_EVAL += --eval "(setq org-src-preserve-indentation nil)" ORG_EVAL += --funcall org-texinfo-export-to-texinfo # This target first bumps version strings in the Org source. The # necessary tools might be missing so other targets do not depend # on this target and it has to be run explicitly when appropriate. # # AMEND=t make texi Update manual to be amended to HEAD. # VERSION=N make texi Update manual for release. # .PHONY: texi texi: @$(EMACS) $(ORG_ARGS) $(PKG).org $(ORG_EVAL) @printf "\n" >> $(PKG).texi @rm -f $(PKG).texi~ %.info: %.texi @printf "Generating $@\n" @$(MAKEINFO) --no-split $< -o $@ dir: $(PKG).info @printf "Generating $@\n" @printf "%s" $^ | xargs -n 1 $(INSTALL_INFO) --dir=$@ HTML_FIXUP_CSS = '//a\ \ \n\ \n\ \n\ \n' HTML_FIXUP_ONLOAD = 's/
//' HTML_FIXUP_MENU = '/<\/body>/i