| 
									
										
										
										
											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.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-26 10:00:46 +01:00
										 |  |  | MMARK_VERSION:=2.2.4 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .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) | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | man/coredns.1: coredns.1.md | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 	@/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 | 
					
						
							| 
									
										
										
										
											2018-01-04 12:53:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-06 15:53:33 +00:00
										 |  |  | man/corefile.5: corefile.5.md | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 	@/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 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 	@/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 | 
					
						
							| 
									
										
										
										
											2019-04-06 14:09:05 +01:00
										 |  |  | 	@sed -i '/^# .*/d' $@.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/* |