]> mj.ucw.cz Git - nsc-5.git/blob - m4/mkmf.m4
81489faa6b131bc753f672fffe4720cc18529879
[nsc-5.git] / m4 / mkmf.m4
1 dnl ###
2 dnl ### NSC 2.2 -- Makefile Builder
3 dnl ### (c) 1997--1999 Martin Mares <mj@ucw.cz>
4 dnl ###
5
6 # Things we allow to override
7
8 define(`named_restart_cmd', `ndc reload')
9
10 # List of all version files available
11
12 define(`ALLVERS', CONF CACHE)
13 define(`ADDVER', `define(`ALLVERS', ALLVERS` $1')')
14
15 # Definition of primary domain
16
17 define(`PRIMARY', `divert(0)VERSDIR/$1 ZONEDIR/$1: CFDIR/$1
18         `$'(NSC) CFDIR/$1 >ZONEDIR/$1 -DVERS=VERSDIR/$1
19
20 divert(-1)
21 ADDVER(VERSDIR/$1)
22 ')
23
24 # Definition of reverse domain
25
26 define(`REVCF', ` patsubst(CFDIR/$1,`^cf/\(.*\)\+\(.*\)$',`ZONEDIR/\1+\2')')
27 define(`REVERSi', `define(`ev',revaddr($1))define(`ew',`shift(shift($@))')
28 divert(0)VERSDIR/ev ZONEDIR/ev:iterate(`REVCF', `ew')
29         `$'(NSC)iterate(`REVCF', `ew') >ZONEDIR/ev -DVERS=VERSDIR/ev -DREVERSE=$2 -DREVBASE=$1
30
31 divert(-1)
32 ADDVER(VERSDIR/ev)
33 ')
34
35 define(`REVERSE', `REVERSi($1,$@)')
36 define(`PREVERSE', `REVERSi($1,patsubst($1,`^\(.*\)\..*$',`\1'),shift($@))')
37
38 # Definition of partial reverse zone delegation (also called classless in-addr.arpa)
39
40 define(`PARTIAL', `divert(0)ZONEDIR/$1+$2:
41         `$'(PGEN) >ZONEDIR/$1+$2 -DBASE=revaddr($1) -DFROM=patsubst(`$1', `^.*\.\(.*\)$', `\1') -DCOUNT=$2 -DSERV=shift(shift($@))
42
43 divert(-1)')
44
45 # Insertion of raw makefile material
46
47 define(`MAKEFILE', `divert(0)$1
48 divert(-1)')
49
50 # Last words
51
52 define(`cleanup', `divert(0)VERSDIR/.version: ALLVERS
53         named_restart_cmd
54         touch VERSDIR/.version
55
56 clean:
57         find BAKDIR ZONEDIR -type f -maxdepth 1 | xargs rm -f
58
59 clobber: clean
60         rm -f Makefile CONF
61
62 distclean: clobber
63         find VERSDIR -type f -maxdepth 1 | xargs rm -f
64 ')
65
66 divert(0)dnl
67 `#'
68 `#'     Nameserver Configuration Makefile
69 `#'     Generated by mkmf.m4 on curdate
70 `#'     Please don't edit manually
71 `#'
72
73 NSC=M4 NSCDIR/dnslib.m4 NSCDIR/nsc.m4
74 PGEN=m4 NSCDIR/dnslib.m4 NSCDIR/pgen.m4
75
76 all: VERSDIR/.version
77 m4wrap(`cleanup')
78 divert(-1)