chiark / gitweb /
Initial version. Very rough, particularly the build system.
[dnserr] / Makefile
1 ### -*-makefile-*-
2
3 BASE                     = distorted.org.uk
4 ZONE                     = dnserr.$(BASE)
5
6 KEYGEN                   = dnssec-keygen -aRSASHA256 -b1024 -Kkey/
7 SIGNZONE                 = dnssec-signzone -S -Kkey/ -dds/
8 SIGVALID                 = -s20000101000000 -e20500101000000
9 SIGOLD                   = -s20000101000000 -e20010101000000
10
11 all:
12
13 DUMMY                    = refused wrong-ds
14 DUMMYZONES               = $(addsuffix .zone,$(DUMMY))
15 TARGETS                 += $(DUMMYZONES)
16 $(DUMMYZONES): %.zone: utils.m4 dummy.in
17         m4 -P -DBASE=$(BASE) >$@.new utils.m4 dummy.in
18         mv $@.new $@
19
20 TARGETS                 += dnserr.zone
21 dnserr.zone: utils.m4 config.m4 dnserr.in
22         m4 -P -DBASE=$(BASE) >$@.new utils.m4 dnserr.in
23         mv $@.new $@
24
25 KEYSTAMP                 = $(patsubst %,key/%.stamp, \
26                                 $(ZONE) \
27                                 $(addsuffix .$(ZONE),$(DUMMY)))
28 $(KEYSTAMP): key/%.stamp:
29         mkdir -p key
30         $(KEYGEN) -fKSK $*
31         $(KEYGEN) $*
32         touch $@
33 all: $(KEYSTAMP)
34 realclean::; rm -rf key/
35
36 DUMMYSIG                 = $(addsuffix .zone.sig,$(DUMMY))
37 TARGETS                 += $(DUMMYSIG)
38 $(DUMMYSIG): %.zone.sig: %.zone
39 wrong-ds.zone.sig: wrong-ds.zone key/wrong-ds.$(ZONE).stamp
40         mkdir -p ds/
41         $(SIGNZONE) $(SIGVALID) -owrong-ds.$(ZONE) -f$@ $<
42 clean::; rm -rf ds/
43
44 TARGETS                 += dnserr.zone.signew
45 dnserr.zone.signew: dnserr.zone key/$(ZONE).stamp
46         $(SIGNZONE) $(SIGVALID) -o$(ZONE) -f$@.bind $<
47         ldns-read-zone $@.bind >$@.new
48         rm $@.bind
49         mv $@.new $@
50
51 TARGETS                 += dnserr.zone.sigold
52 dnserr.zone.sigold: dnserr.zone key/$(ZONE).stamp
53         $(SIGNZONE) $(SIGOLD) -P -o$(ZONE) -f$@.bind $<
54         ldns-read-zone $@.bind >$@.new
55         rm $@.bind
56         mv $@.new $@
57
58 TARGETS                 += dnserr.zone.sig
59 OLDSIGMATCH              = $$1 == "expired-rrsig.$(ZONE)." && \
60                                 $$4 == "RRSIG" && $$5 == "A"
61 BADSIGMATCH              = $$1 == "invalid-rrsig.$(ZONE)." && \
62                                 $$4 == "RRSIG" && $$5 == "A"
63 CLEAN                   += t.oldsig
64 dnserr.zone.sig: dnserr.zone.sigold dnserr.zone.signew
65         awk '$(OLDSIGMATCH) { print; }' \
66                 dnserr.zone.sigold >t.oldsig
67         awk '$(OLDSIGMATCH) { system("cat t.oldsig"); next; } \
68                 { gsub(/invalid-rrsigx/, "invalid-rrsig"); print; }' \
69         dnserr.zone.signew >$@.new
70         mv $@.new $@
71
72 CLEAN                   += $(TARGETS)
73 all: $(TARGETS)
74 .PHONY: all
75
76 clean::; rm -f $(CLEAN)
77 realclean:: clean; rm -f $(REALCLEAN)
78 .PHONY: clean realclean