From: Rob Browning Date: Thu, 17 Dec 2015 23:24:33 +0000 (-0600) Subject: Build docs via top Makefile X-Git-Tag: 0.28-rc1~54 X-Git-Url: https://arthur.barton.de/gitweb/?p=bup.git;a=commitdiff_plain;h=973a680f7134c1d6a4b9cfb21dd977c445fa5cd6 Build docs via top Makefile Move the operations in Documentation/Makefile to ./Makefile, and rework the process to make it less likely we might overlook command failures (like ./bup version). Delete Documentation/Makefile. This may also improve the accuracy of the build dependencies. Signed-off-by: Rob Browning Tested-by: Rob Browning --- diff --git a/Documentation/.gitignore b/Documentation/.gitignore index 6642646..b8839cd 100644 --- a/Documentation/.gitignore +++ b/Documentation/.gitignore @@ -1,3 +1,3 @@ *.[0-9] *.html -.docs-available +/substvars diff --git a/Documentation/Makefile b/Documentation/Makefile deleted file mode 100644 index 067f698..0000000 --- a/Documentation/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -PANDOC:=$(shell \ - if pandoc /dev/null; then \ - echo pandoc; \ - touch .docs-available; \ - else \ - echo "Warning: pandoc not installed; can't generate manpages." >&2; \ - echo '@echo Skipping: pandoc'; \ - rm -f .docs-available; \ - fi) -BUP_VERSION:=$(shell ../bup version --tag) -BUP_DATE:=$(shell ../bup version --date) - -default: all - -all: man html - -man: $(patsubst %.md,%.1,$(wildcard *.md)) - -html: $(patsubst %.md,%.html,$(wildcard *.md)) - -%.1: %.md.tmp Makefile - $(PANDOC) -s -r markdown -w man -o $@ $< - -%.html: %.md.tmp Makefile - $(PANDOC) -s -r markdown -w html -o $@ $< - -.PRECIOUS: %.md.tmp -%.md.tmp: %.md Makefile - rm -f $@ $@.new - sed -e 's,%BUP_VERSION%,${BUP_VERSION},g' \ - -e 's,%BUP_DATE%,${BUP_DATE},g' <$< >$@.new - mv $@.new $@ - -clean: - rm -f *~ .*~ *.[0-9] *.new *.tmp *.html .docs-available diff --git a/Makefile b/Makefile index d767ced..b2f337a 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,6 @@ all: $(bup_deps) Documentation/all $(current_sampledata) bup: ln -s main.py bup -Documentation/all: $(bup_deps) - $(current_sampledata): t/configure-sampledata --setup @@ -68,24 +66,33 @@ define install-python-bin chmod 0755 $2; endef +PANDOC ?= $(shell type -p pandoc) + +ifeq (,$(PANDOC)) + $(shell echo "Warning: pandoc not found; skipping manpage generation" 1>&2) + man_md := +else + man_md := $(wildcard Documentation/*.md) +endif + +man_roff := $(patsubst %.md,%.1,$(man_md)) +man_html := $(patsubst %.md,%.html,$(man_md)) + INSTALL=install PREFIX=/usr MANDIR=$(DESTDIR)$(PREFIX)/share/man DOCDIR=$(DESTDIR)$(PREFIX)/share/doc/bup BINDIR=$(DESTDIR)$(PREFIX)/bin LIBDIR=$(DESTDIR)$(PREFIX)/lib/bup + install: all - $(INSTALL) -d $(MANDIR)/man1 $(DOCDIR) $(BINDIR) \ + $(INSTALL) -d $(BINDIR) \ $(LIBDIR)/bup $(LIBDIR)/cmd \ $(LIBDIR)/web $(LIBDIR)/web/static - [ ! -e Documentation/.docs-available ] || \ - $(INSTALL) -m 0644 \ - Documentation/*.1 \ - $(MANDIR)/man1 - [ ! -e Documentation/.docs-available ] || \ - $(INSTALL) -m 0644 \ - Documentation/*.html \ - $(DOCDIR) + test -z "$(man_roff)" || install -d $(MANDIR)/man1 + test -z "$(man_roff)" || $(INSTALL) -m 0644 $(man_roff) $(MANDIR)/man1 + test -z "$(man_html)" || install -d $(DOCDIR) + test -z "$(man_html)" || $(INSTALL) -m 0644 $(man_html) $(DOCDIR) $(call install-python-bin,bup,"$(BINDIR)/bup") set -e; \ for cmd in $$(ls cmd/bup-* | grep -v cmd/bup-python); do \ @@ -200,6 +207,25 @@ cmd/bup-%: cmd/%-cmd.sh rm -f $@ ln -s $*-cmd.sh $@ +.PHONY: Documentation/all +Documentation/all: $(man_roff) $(man_html) + +Documentation/substvars: $(bup_deps) + echo "s,%BUP_VERSION%,$$(./bup version --tag),g" > $@ + echo "s,%BUP_DATE%,$$(./bup version --date),g" >> $@ + +Documentation/%.1: Documentation/%.md Documentation/substvars + $(pf); sed -f Documentation/substvars $< \ + | $(PANDOC) -s -r markdown -w man -o $@ + +Documentation/%.html: Documentation/%.md Documentation/substvars + $(pf); sed -f Documentation/substvars $< \ + | $(PANDOC) -s -r markdown -w html -o $@ + +.PHONY: Documentation/clean +Documentation/clean: + cd Documentation && rm -f *~ .*~ *.[0-9] *.html substvars + # update the local 'man' and 'html' branches with pregenerated output files, for # people who don't have pandoc (and maybe to aid in google searches or something) export-docs: Documentation/all