2019-06-26 11:18:03 +01:00
|
|
|
# This Makefile generates the manual pages from the markdown README.mds. It depends
|
|
|
|
|
# on https://github.com/mmarkdown/mmark to be installed. Generally we want this to be
|
|
|
|
|
# updated before doing a release. The Debian package, for instance, looks at these pages
|
|
|
|
|
# and will install them on your system.
|
|
|
|
|
|
2026-03-31 00:38:38 +03:00
|
|
|
MMARK_VERSION:=2.2.47
|
2018-01-04 12:53:07 +00:00
|
|
|
PLUGINS:=$(wildcard plugin/*/README.md)
|
|
|
|
|
READMES:=$(subst plugin/,,$(PLUGINS))
|
|
|
|
|
READMES:=$(subst /README.md,,$(READMES))
|
2018-06-13 11:02:14 +01:00
|
|
|
PLUGINS:=$(subst plugin/,coredns-,$(PLUGINS))
|
2018-01-04 12:53:07 +00:00
|
|
|
PLUGINS:=$(subst /README.md,(7),$(PLUGINS))
|
|
|
|
|
|
2020-03-26 10:00:46 +01:00
|
|
|
all: mmark man/coredns.1 man/corefile.5 plugins
|
|
|
|
|
|
|
|
|
|
GO ?= go
|
|
|
|
|
GOHOSTOS ?= $(shell $(GO) env GOHOSTOS)
|
|
|
|
|
GOHOSTARCH ?= $(shell $(GO) env GOHOSTARCH)
|
|
|
|
|
GO_BUILD_PLATFORM ?= $(GOHOSTOS)_$(GOHOSTARCH)
|
|
|
|
|
|
|
|
|
|
FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH)))
|
|
|
|
|
MMARK_BIN := $(FIRST_GOPATH)/bin/mmark
|
|
|
|
|
MMARK := $(FIRST_GOPATH)/bin/mmark -man
|
|
|
|
|
|
|
|
|
|
MMARK_URL := https://github.com/mmarkdown/mmark/releases/download/v$(MMARK_VERSION)/mmark_$(MMARK_VERSION)_$(GO_BUILD_PLATFORM).tgz
|
|
|
|
|
|
2026-03-31 00:38:38 +03:00
|
|
|
# SHA-256 checksums for mmark v2.2.47 release tarballs.
|
|
|
|
|
# See: https://github.com/mmarkdown/mmark/releases/tag/v2.2.47
|
|
|
|
|
MMARK_SHA256_darwin_amd64 := 941e963489e328c9da188629688438f9f3e93b6a4895c6ef943d55fbbfa84a3c
|
|
|
|
|
MMARK_SHA256_darwin_arm64 := 641cbc566edec29dd989ac15432b7f007be54ebc163cf6d98cd1d3df295ef9c4
|
|
|
|
|
MMARK_SHA256_linux_amd64 := e0585cc9628c562e0f1be36e45221e84c6fc84957c999168ce4ba35594264ff2
|
|
|
|
|
MMARK_SHA256_linux_arm := f6e1059c032b9ec0a74da40d8e901968d0bb41d92a160ef4782febbbf298d22d
|
|
|
|
|
MMARK_SHA256_linux_arm64 := 9a3c9b2e525b5addf97f968ec28829947520f628fdf4850134be784e220149ca
|
|
|
|
|
MMARK_SHA256_windows_amd64 := 9c73231e4427651d1f7911d4a9014aa2d87e735aac9c93e4e400061bc1de6714
|
|
|
|
|
MMARK_SHA256 := $(MMARK_SHA256_$(GO_BUILD_PLATFORM))
|
|
|
|
|
|
2020-03-26 10:00:46 +01:00
|
|
|
.PHONY: mmark
|
|
|
|
|
mmark: $(MMARK_BIN)
|
|
|
|
|
|
|
|
|
|
$(MMARK_BIN):
|
|
|
|
|
$(eval MMARK_TMP := $(shell mktemp -d))
|
2026-03-31 00:38:38 +03:00
|
|
|
curl -s -L -o $(MMARK_TMP)/mmark.tgz $(MMARK_URL)
|
|
|
|
|
@if [ -z "$(MMARK_SHA256)" ]; then \
|
|
|
|
|
echo "error: no known checksum for platform $(GO_BUILD_PLATFORM)" >&2; exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@echo "$(MMARK_SHA256) $(MMARK_TMP)/mmark.tgz" | shasum -a 256 -c -
|
|
|
|
|
tar -xzf $(MMARK_TMP)/mmark.tgz -C $(MMARK_TMP)
|
2020-03-26 10:00:46 +01:00
|
|
|
mkdir -p $(FIRST_GOPATH)/bin
|
|
|
|
|
cp $(MMARK_TMP)/mmark $(FIRST_GOPATH)/bin/mmark
|
|
|
|
|
rm -r $(MMARK_TMP)
|
2018-01-04 12:53:07 +00:00
|
|
|
|
|
|
|
|
man/coredns.1: coredns.1.md
|
2026-03-31 00:38:38 +03:00
|
|
|
@printf '%%%%%%\n title = "coredns 1"\n area = "CoreDNS"\n workgroup = "CoreDNS"\n%%%%%%\n\n' > $@.header
|
2019-04-06 08:42:40 +01:00
|
|
|
@cat $@.header $< > $@.md && rm $@.header
|
2026-03-31 00:38:38 +03:00
|
|
|
@sed -e "s/@@PLUGINS@@/$(PLUGINS)/" $@.md > $@.md.tmp && mv $@.md.tmp $@.md
|
2019-04-06 08:42:40 +01:00
|
|
|
$(MMARK) $@.md > $@ && rm $@.md
|
2018-01-04 12:53:07 +00:00
|
|
|
|
2018-01-06 15:53:33 +00:00
|
|
|
man/corefile.5: corefile.5.md
|
2026-03-31 00:38:38 +03:00
|
|
|
@printf '%%%%%%\n title = "corefile 5"\n area = "CoreDNS"\n workgroup = "CoreDNS"\n%%%%%%\n\n' > $@.header
|
2019-04-06 08:42:40 +01:00
|
|
|
@cat $@.header $< > $@.md && rm $@.header
|
|
|
|
|
$(MMARK) $@.md > $@ && rm $@.md
|
2018-01-06 15:53:33 +00:00
|
|
|
|
2018-01-04 12:53:07 +00:00
|
|
|
.PHONY: plugins
|
|
|
|
|
plugins:
|
|
|
|
|
for README in $(READMES); do \
|
|
|
|
|
$(MAKE) -f Makefile.doc man/coredns-$$README.7; \
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
man/coredns-%.7: plugin/%/README.md
|
2026-03-31 00:38:38 +03:00
|
|
|
@printf '%%%%%%\n title = "%s 7"\n area = "CoreDNS"\n workgroup = "CoreDNS Plugins"\n%%%%%%\n\n' "`basename $@ | sed s/\.7//`" > $@.header
|
2019-04-06 08:42:40 +01:00
|
|
|
@cat $@.header $< > $@.md && rm $@.header
|
2026-03-31 00:38:38 +03:00
|
|
|
@sed -e '/^# .*/d' $@.md > $@.md.tmp && mv $@.md.tmp $@.md
|
2019-04-06 08:42:40 +01:00
|
|
|
$(MMARK) $@.md > $@ && rm $@.md
|
2018-01-04 12:53:07 +00:00
|
|
|
|
|
|
|
|
PHONY: clean
|
|
|
|
|
clean:
|
|
|
|
|
rm -f man/*
|