# The minor version is passed to the build.  This is used to do some CPP to
# solve incompatibilities.
PANDOC_MINOR_VERSION=$(shell ghc-pkg latest pandoc | sed 's/.*-//' | cut -d. -f2)

# We use `?=` to set SOURCE_DATE_EPOCH only if it is not present.  Unfortunately
# we can't use `git --date=unix` since only very recent git versions support
# that, so we need to make a round trip through `date`.
SOURCE_DATE_EPOCH?=$(shell date '+%s' \
					   --date="$(shell git log -1 --format=%cd --date=rfc)")

# Prettify the date.
SOURCE_DATE=$(shell env LC_ALL=C date '+%B %d, %Y' -d "@${SOURCE_DATE_EPOCH}")

extra/patat.1: README.md extra/make-man
	SOURCE_DATE="$(SOURCE_DATE)" ./extra/make-man >$@

extra/make-man: extra/make-man.hs
	ghc -DPANDOC_MINOR_VERSION=${PANDOC_MINOR_VERSION} -Wall -o $@ $<

man: extra/patat.1

# Also check if we can generate the manual.
test: man
	bash test.sh

clean:
	rm -f extra/patat.1
	rm -f extra/make-man

.PHONY: man test clean
