cado/man/Makefile

32 lines
1.2 KiB
Makefile

MAKEFLAGS += --silent
PANDOC=pandoc
PANDOCOK := $(shell command -v ${PANDOC} 2> /dev/null)
PANDOCMINVER=3.1.7
ifdef PANDOCOK
PANDOCVER := $(shell ${PANDOC} -v | head -1 | cut -d ' ' -f 2)
PANDOCVEROK := $(shell printf '%s\n' ${PANDOCMINVER} ${PANDOCVER} | sort -C -V; echo $$?)
endif
none:
% : %.md
ifdef PANDOCOK
ifeq (${PANDOCVEROK}, 1)
echo "${PANDOC} ${PANDOCVER} < ${PANDOCMINVER}. $@ can create font warnings with man/groff" >/dev/stderr >&2
endif
# copy copyright notice
grep "^\.\\\\\"" $< > $@ || true
# run pandoc
$(eval SECTION := $(subst .,,$(suffix $@)))
$(eval BASENAME := $(basename $@))
$(eval TITLE := $(shell echo "${BASENAME}\(${SECTION}\)" | tr [:lower:] [:upper:]))
$(eval HEADER := "$(shell man ${SECTION} intro | head -1 | sed -e 's/^[^[:blank:]]*[[:blank:]]*//' -e 's/[[:blank:]]*[^[:blank:]]*$$//' )")
$(PANDOC) -standalone -M title=${TITLE} -M section=${SECTION} -M header=${HEADER} -M footer=${PANDOC_ORG} -M "date=`date +\"%B %Y\"`" --to man $< >> $@
# workaround for boldface rendering
sed -i -e 's/\\f\[CR\]/\\f\[CB\]/g' $@ || true
echo "$@ manpage updated" >/dev/stderr >&2
else
echo "${PANDOC} is not available. Manpage $@ cannot be updated" >/dev/stderr >&2
endif