mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-27 00:04:15 -04:00 
			
		
		
		
	Run make -f Makefile.doc in CircleCI to test that man pages are updated in PRs. Signed-off-by: Ben Kochie <superq@gmail.com>
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # 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.
 | |
| 
 | |
| MMARK_VERSION:=2.2.4
 | |
| PLUGINS:=$(wildcard plugin/*/README.md)
 | |
| READMES:=$(subst plugin/,,$(PLUGINS))
 | |
| READMES:=$(subst /README.md,,$(READMES))
 | |
| PLUGINS:=$(subst plugin/,coredns-,$(PLUGINS))
 | |
| PLUGINS:=$(subst /README.md,(7),$(PLUGINS))
 | |
| 
 | |
| 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
 | |
| 
 | |
| .PHONY: mmark
 | |
| mmark: $(MMARK_BIN)
 | |
| 
 | |
| $(MMARK_BIN):
 | |
| 	$(eval MMARK_TMP := $(shell mktemp -d))
 | |
| 	curl -s -L $(MMARK_URL) | tar -xvzf - -C $(MMARK_TMP)
 | |
| 	mkdir -p $(FIRST_GOPATH)/bin
 | |
| 	cp $(MMARK_TMP)/mmark $(FIRST_GOPATH)/bin/mmark
 | |
| 	rm -r $(MMARK_TMP)
 | |
| 
 | |
| man/coredns.1: coredns.1.md
 | |
| 	@/bin/echo -e '%%%\n title = "coredns 1"\n' \
 | |
| 		'area = "CoreDNS"\n workgroup = "CoreDNS"\n%%%\n\n' > $@.header
 | |
| 	@cat $@.header $< > $@.md && rm $@.header
 | |
| 	@sed -i -e "s/@@PLUGINS@@/$(PLUGINS)/" $@.md
 | |
| 	$(MMARK) $@.md > $@ && rm $@.md
 | |
| 
 | |
| man/corefile.5: corefile.5.md
 | |
| 	@/bin/echo -e '%%%\n title = "corefile 5"\n' \
 | |
| 		'area = "CoreDNS"\n workgroup = "CoreDNS"\n%%%\n\n' > $@.header
 | |
| 	@cat $@.header $< > $@.md && rm $@.header
 | |
| 	$(MMARK) $@.md > $@ && rm $@.md
 | |
| 
 | |
| .PHONY: plugins
 | |
| plugins:
 | |
| 	for README in $(READMES); do \
 | |
| 	    $(MAKE) -f Makefile.doc man/coredns-$$README.7; \
 | |
| 	done
 | |
| 
 | |
| man/coredns-%.7: plugin/%/README.md
 | |
| 	@/bin/echo -e "%%%\n title = \"`basename $@ | sed s\/\.7\/\/` 7\"\n" \
 | |
| 		'area = "CoreDNS"\n workgroup = "CoreDNS Plugins"\n%%%\n\n' > $@.header
 | |
| 	@cat $@.header $< > $@.md && rm $@.header
 | |
| 	@sed -i '/^# .*/d' $@.md
 | |
| 	$(MMARK) $@.md > $@ && rm $@.md
 | |
| 
 | |
| PHONY: clean
 | |
| clean:
 | |
| 	rm -f man/*
 |