dnl ###
-dnl ### NSC 2.2 -- Makefile Builder
-dnl ### (c) 1997--1999 Martin Mares <mj@ucw.cz>
+dnl ### NSC -- Makefile Builder
+dnl ### (c) 1997--2019 Martin Mares <mj@ucw.cz>
dnl ###
+include(m4/dnslib.m4)
-# Things we allow to override
+# Definition of primary domains; secondaries we needn't take care of
-define(`named_restart_cmd', `ndc reload')
+define(`PRIMARIES', `')
-# List of all version files available
-
-define(`ALLVERS', CONF CACHE)
-define(`ADDVER', `define(`ALLVERS', ALLVERS` $1')')
-
-# Definition of primary domain
-
-define(`PRIMARY', `divert(0)VERSDIR/$1 ZONEDIR/$1: CFDIR/$1
- `$'(NSC) CFDIR/$1 >ZONEDIR/$1 -DVERS=VERSDIR/$1
+define(`nsc_prepend_cf_one', ` 'CFDIR/`nsc_file_name($1)')
+define(`nsc_prepend_cf_multi', `nsc_iterate(`nsc_prepend_cf_one', $@)')
+define(`nsc_key_dep', `ifelse(USE_DNSSEC,,,` 'khash/nsc_file_name($1) keys/resign-stamp)')
+define(`PRIMARY', `define(`CURRENT_TARGET',zone/nsc_file_name($1))
+divert(0)CURRENT_TARGET:nsc_prepend_cf_multi($@)nsc_key_dep($1) $(DDEPS)
+ @bin/genzone nsc_file_name($1)`'nsc_prepend_cf_multi($@)
divert(-1)
-ADDVER(VERSDIR/$1)
+define(`PRIMARIES', PRIMARIES zone/nsc_file_name($1))
')
-# Definition of reverse domain
+define(`REVERSE', `PRIMARY(nsc_if_v6($1,`nsc_revblock6($1)',`nsc_revaddr($1)'), shift($@))')
-define(`REVCF', ` patsubst(CFDIR/$1,`^cf/\(.*\)\+\(.*\)$',`ZONEDIR/\1+\2')')
-define(`REVERSi', `define(`ev',revaddr($1))define(`ew',`shift(shift($@))')
-divert(0)VERSDIR/ev ZONEDIR/ev:iterate(`REVCF', `ew')
- `$'(NSC)iterate(`REVCF', `ew') >ZONEDIR/ev -DVERS=VERSDIR/ev -DREVERSE=$2 -DREVBASE=$1
-
-divert(-1)
-ADDVER(VERSDIR/ev)
-')
+define(`BLACKHOLE', `define(`NEED_BLACKHOLE', 1)')
-define(`REVERSE', `REVERSi($1,$@)')
-define(`PREVERSE', `REVERSi($1,patsubst($1,`^\(.*\)\..*$',`\1'),shift($@))')
-
-# Definition of partial reverse zone delegation (also called classless in-addr.arpa)
-
-define(`PARTIAL', `divert(0)ZONEDIR/$1+$2:
- `$'(PGEN) >ZONEDIR/$1+$2 -DBASE=revaddr($1) -DFROM=patsubst(`$1', `^.*\.\(.*\)$', `\1') -DCOUNT=$2 -DSERV=shift(shift($@))
+define(`DSFOR', `divert(0)CURRENT_TARGET: dss/$1
divert(-1)')
# Last words
-define(`cleanup', `divert(0)VERSDIR/.version: ALLVERS
- named_restart_cmd
- touch VERSDIR/.version
+define(`nsc_cleanup', `
+ifdef(`NEED_BLACKHOLE', `PRIMARY(blackhole)')
+
+divert(0)dnl
+ver/.version: CFDIR/domains`'PRIMARIES`'ifdef(`NEED_BLACKHOLE',` zone/blackhole')
+ NAMED_RESTART_CMD
+ touch ver/.version
+
+keys/resign-stamp:
+ touch `$'@
clean:
- find BAKDIR ZONEDIR -type f -maxdepth 1 | xargs rm -f
+ find bak zone hash tmp -maxdepth 1 -type f | xargs rm -f
clobber: clean
- rm -f Makefile CONF
+ rm -f Makefile named.conf bin/shell-env
distclean: clobber
- find VERSDIR -type f -maxdepth 1 | xargs rm -f
+ find ver -maxdepth 1 -type f | xargs rm -f
')
divert(0)dnl
`#'
`#' Nameserver Configuration Makefile
-`#' Generated by mkmf.m4 on curdate
+`#' Generated by NSCVER (mkmf.m4) on CURRENT_DATE
`#' Please don't edit manually
`#'
-NSC=M4 NSCDIR/dnslib.m4 NSCDIR/nsc.m4
-PGEN=m4 NSCDIR/dnslib.m4 NSCDIR/pgen.m4
+DDEPS=m4/nsc.m4 m4/dnslib.m4 cf/config
-all: VERSDIR/.version
-m4wrap(`cleanup')
+all: ver/.version
+m4wrap(`nsc_cleanup')
divert(-1)