diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2021-12-16 19:35:00 +0100 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2021-12-16 19:35:00 +0100 |
| commit | a94faeae2ff95235b31c1c1f9447bc95fc527240 (patch) | |
| tree | 7b535053f07cf64a5839de1c10e769490545696e /Makefile | |
| parent | 93ba7c84a752cd44a8225c4131044635465daddb (diff) | |
Add lisp/ and docs/ directories
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 198 |
1 files changed, 28 insertions, 170 deletions
@@ -1,193 +1,51 @@ -include config.mk +include default.mk -PKG = with-editor +.PHONY: lisp docs clean -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 ../org/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 +all: lisp docs 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 docs - generate most manual formats) $(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 stats - generate statistics) $(info make authors - generate AUTHORS.md) + $(info make stats - generate statistics) $(info make publish - publish snapshot manuals) $(info make release - publish release manuals) $(info make clean - remove most generated files) + @printf "\n" -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 +lisp: + @$(MAKE) -C lisp lisp -ORG_ARGS = --batch -Q $(ORG_LOAD_PATH) -l ox-texinfo+ -ORG_EVAL = --eval "(setq org-texinfo+-dissolve-noexport-headlines t)" -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 +docs: + @$(MAKE) -C docs docs 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 = '/<link rel="stylesheet" type="text\/css" href="\/assets\/page.css">/a\ -<link rel="icon" href="/assets/magit_alt1.ico">\ -\n<link class="s-css-s--style" rel="stylesheet" title="Default" href="/assets/themes/default.css">\ -\n<link class="s-css-s--style" rel="stylesheet alternate" title="Default high contrast" href="/assets/themes/default-high-contrast.css">\ -\n<link class="s-css-s--style" rel="stylesheet alternate" title="Solarized dark xterm" href="/assets/themes/solarized-dark-xterm.css">\ -\n<link class="s-css-s--style" rel="stylesheet alternate" title="Black on white" href="/assets/themes/black-on-white.css">\ -\n<script src="/assets/js/simple-css-switch.js"></script>' -HTML_FIXUP_ONLOAD = 's/<body lang="en">/<body lang="en" onload="simpleCssSwitch()">/' -HTML_FIXUP_MENU = '/<\/body>/i<div id="s-css-s--menu"><\/div>' - -%.html: %.texi - @printf "Generating $@\n" - @$(MAKEINFO) --html --no-split $(MANUAL_HTML_ARGS) $< - @sed -i -e $(HTML_FIXUP_CSS) -e $(HTML_FIXUP_ONLOAD) -e $(HTML_FIXUP_MENU) $@ - -html-dir: $(PKG).texi - @printf "Generating $(PKG)/*.html\n" - @$(MAKEINFO) --html $(MANUAL_HTML_ARGS) $< - @for f in $$(find $(PKG) -name '*.html') ; do \ - sed -i -e $(HTML_FIXUP_CSS) -e $(HTML_FIXUP_ONLOAD) -e $(HTML_FIXUP_MENU) $$f ; \ - done - -%.pdf: %.texi - @printf "Generating $@\n" - @texi2pdf --clean $< > /dev/null - -.PHONY: stats + @$(MAKE) -C docs texi +info: + @$(MAKE) -C docs info +html: + @$(MAKE) -C docs html +html-dir: + @$(MAKE) -C docs html-dir +pdf: + @$(MAKE) -C docs pdf +authors: + @$(MAKE) -C docs authors stats: - @printf "Generating statistics\n" - @gitstats -c style=https://magit.vc/assets/stats.css -c max_authors=999 . stats - -DOMAIN ?= magit.vc -PUBLISH_PATH ?= /manual/ -RELEASE_PATH ?= /manual/$(VERSION)/ - -S3_BUCKET ?= s3://$(DOMAIN) -PUBLISH_TARGET = $(S3_BUCKET)$(PUBLISH_PATH) -RELEASE_TARGET = $(S3_BUCKET)$(RELEASE_PATH) - -CFRONT_DIST ?= E2LUHBKU1FBV02 -CFRONT_PATHS = $(PKG).html $(PKG).pdf $(PKG)/* + @$(MAKE) -C docs stats -comma := , -empty := -space := $(empty) $(empty) - -publish: html html-dir pdf - @aws s3 cp $(PKG).html $(PUBLISH_TARGET) - @aws s3 cp $(PKG).pdf $(PUBLISH_TARGET) - @aws s3 sync --delete $(PKG) $(PUBLISH_TARGET)$(PKG)/ - @printf "Generating CDN invalidation\n" - @aws cloudfront create-invalidation --distribution-id $(CFRONT_DIST) --paths \ - "$(subst $(space),$(comma),$(addprefix $(PUBLISH_PATH),$(CFRONT_PATHS)))" > /dev/null - -release: html html-dir pdf - @aws s3 cp $(PKG).html $(RELEASE_TARGET) - @aws s3 cp $(PKG).pdf $(RELEASE_TARGET) - @aws s3 sync --delete $(PKG) $(RELEASE_TARGET)$(PKG)/ - @aws s3 cp $(PUBLISH_TARGET)dir.html $(RELEASE_TARGET)dir.html - @aws s3 cp $(PUBLISH_TARGET)dir/index.html $(RELEASE_TARGET)dir/index.html - @printf "Generating CDN invalidation\n" - @aws cloudfront create-invalidation --distribution-id $(CFRONT_DIST) --paths \ - "$(subst $(space),$(comma),$(addprefix $(RELEASE_PATH),$(CFRONT_PATHS)))" > /dev/null - -CLEAN = $(ELCS) $(PKG)-autoloads.el $(PKG).info dir -CLEAN += $(PKG) $(PKG).html $(PKG).pdf +publish: + @$(MAKE) -C docs publish +release: + @$(MAKE) VERSION=$(VERSION) -C docs release clean: - @printf "Cleaning...\n" - @rm -rf $(CLEAN) - -.PHONY: authors AUTHORS.md -authors: AUTHORS.md - -AUTHORS.md: - @ printf "Authors\n=======\n\n" > $@ - @ ( printf "%s\n" "- Barak A. Pearlmutter <barak+git@pearlmutter.net>" && \ - printf "%s\n" "- Lele Gaifax <lele@metapensiero.it>" && \ - printf "%s\n" "- Rémi Vanicat <vanicat@debian.org>" && \ - git log --pretty=format:'- %aN <%aE>' \ - ) | sort -u >> $@ - -define LOADDEFS_TMPL -;;; $(PKG)-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (directory-file-name \ -(or (file-name-directory #$$) (car load-path)))) - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; $(PKG)-autoloads.el ends here -endef -export LOADDEFS_TMPL -#' - -$(PKG)-autoloads.el: $(ELS) - @printf "Generating $@\n" - @printf "%s" "$$LOADDEFS_TMPL" > $@ - @$(EMACS) -Q --batch --eval "(progn\ - (setq make-backup-files nil)\ - (setq vc-handled-backends nil)\ - (setq default-directory (file-truename default-directory))\ - (setq generated-autoload-file (expand-file-name \"$@\"))\ - (setq find-file-visit-truename t)\ - (update-directory-autoloads default-directory))" + @$(MAKE) -C lisp clean + @$(MAKE) -C docs clean |
