## Copyright (c) 1996-2000 by Internet Software Consortium
##
## Permission to use, copy, modify, and distribute this software for any
## purpose with or without fee is hereby granted, provided that the above
## copyright notice and this permission notice appear in all copies.
##
## THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
## ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
## OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
## CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
## DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
## PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
## SOFTWARE.

# $Id: Makefile,v 1.1 2002/08/28 06:59:40 marka Exp $

DESTDIR=
CC= cc
SHELL= /bin/sh

CDEBUG= -g -Wall

#(net2 and its descendents)
SYSTYPE = freebsd
TOP = ../..
NAMED_SRC_DIR = ../named
INCL =  ${TOP}/include
PORTINCL = ${TOP}/port/${SYSTYPE}/include
LIBBIND = ${TOP}/lib/libbind.a
A=a
O=o
EXE=
YACC = yacc -d
SYSLIBS = -ll -lutil
DESTBIN = /usr/local/bin
DESTSBIN = /usr/local/sbin
DESTEXEC = /usr/local/libexec
DESTMAN = /usr/share/man
DESTHELP= /usr/share/misc
DESTETC= /etc
DESTRUN= /var/run
AR= ar cru
INSTALL= install
STRIP=-s
INSTALL_EXEC=
INSTALL_LIB=-o bin -g bin

PS=ps
LDFLAGS=
CFLAGS=	${CDEBUG}
CPPFLAGS= -I${PORTINCL} -I${INCL} -I${NAMED_SRC_DIR} ${DEFS}

VER= LOCAL-`date +%y%m%d.%H%M%S`
HOSTNAMECMD= hostname || uname -n

PROG=	nsverifier
HDRS=	${NAMED_SRC_DIR}/db_defs.h \
	${NAMED_SRC_DIR}/db_glob.h \
	${NAMED_SRC_DIR}/ns_defs.h \
	${NAMED_SRC_DIR}/ns_glob.h \
	${NAMED_SRC_DIR}/named.h \
	${NAMED_SRC_DIR}/pathnames.h
NAMED_SRCS=	${NAMED_SRC_DIR}/db_dump.c \
	${NAMED_SRC_DIR}/db_lookup.c \
	${NAMED_SRC_DIR}/db_save.c \
	${NAMED_SRC_DIR}/db_update.c  \
	${NAMED_SRC_DIR}/db_glue.c \
	${NAMED_SRC_DIR}/db_ixfr.c \
	${NAMED_SRC_DIR}/db_sec.c \
	${NAMED_SRC_DIR}/db_tsig.c  \
	${NAMED_SRC_DIR}/ns_lexer.c \
	${NAMED_SRC_DIR}/ns_parseutil.c  \
	${NAMED_SRC_DIR}/ns_forw.c \
	${NAMED_SRC_DIR}/ns_init.c \
	${NAMED_SRC_DIR}/ns_maint.c \
	${NAMED_SRC_DIR}/ns_req.c  \
	${NAMED_SRC_DIR}/ns_resp.c \
	${NAMED_SRC_DIR}/ns_stats.c \
	${NAMED_SRC_DIR}/ns_ncache.c \
	${NAMED_SRC_DIR}/ns_xfr.c \
	${NAMED_SRC_DIR}/ns_glue.c  \
	${NAMED_SRC_DIR}/ns_udp.c \
	${NAMED_SRC_DIR}/ns_update.c \
	${NAMED_SRC_DIR}/ns_ixfr.c \
	${NAMED_SRC_DIR}/ns_signal.c  \
	${NAMED_SRC_DIR}/ns_sort.c \
	${NAMED_SRC_DIR}/ns_notify.c
VSRCS=	vns_main.c vns_init.c vns_config.c vns_parser.c vdb_load.c vns_ctl.c
SRCS=	${VSRCS} ${NAMED_SRCS}
NAMED_OBJS=	${NAMED_SRC_DIR}/db_dump.${O} \
	${NAMED_SRC_DIR}/db_lookup.${O} \
	${NAMED_SRC_DIR}/db_save.${O} \
	${NAMED_SRC_DIR}/db_update.${O}  \
	${NAMED_SRC_DIR}/db_glue.${O} \
	${NAMED_SRC_DIR}/db_ixfr.${O} \
	${NAMED_SRC_DIR}/db_sec.${O} \
	${NAMED_SRC_DIR}/db_tsig.${O}  \
	${NAMED_SRC_DIR}/ns_lexer.${O} \
	${NAMED_SRC_DIR}/ns_parseutil.${O} \
	${NAMED_SRC_DIR}/ns_forw.${O} \
	${NAMED_SRC_DIR}/ns_init.${O} \
	${NAMED_SRC_DIR}/ns_maint.${O} \
	${NAMED_SRC_DIR}/ns_req.${O}  \
	${NAMED_SRC_DIR}/ns_resp.${O} \
	${NAMED_SRC_DIR}/ns_stats.${O} \
	${NAMED_SRC_DIR}/ns_ncache.${O} \
	${NAMED_SRC_DIR}/ns_xfr.${O} \
	${NAMED_SRC_DIR}/ns_glue.${O}  \
	${NAMED_SRC_DIR}/ns_udp.${O} \
	${NAMED_SRC_DIR}/ns_update.${O} \
	${NAMED_SRC_DIR}/ns_ixfr.${O} \
	${NAMED_SRC_DIR}/ns_signal.${O}  \
	${NAMED_SRC_DIR}/ns_sort.${O} \
	${NAMED_SRC_DIR}/ns_notify.${O}
VOBJS=	vns_main.${O} vns_init.${O} vns_config.${O} vns_parser.${O} \
	vdb_load.${O} vns_ctl.${O}
OBJS=	${VOBJS} ${NAMED_OBJS}

all: ${PROG}${EXE}

${PROG}${EXE}: pathnames.h ${OBJS} ${LIBBIND} Makefile tmp_version.${O}
	${CC} ${CDEBUG} ${LDFLAGS} ${BOUNDS} -o ${PROG}${EXE} ${OBJS} \
		tmp_version.${O} ${LIBBIND} ${SYSLIBS}

vns_main.c: ${NAMED_SRC_DIR}/ns_main.c vns_main.f
	cat ${NAMED_SRC_DIR}/ns_main.c |sed "s/^ *main *(/ ns_main(/" >vns_main.c
	cat vns_main.f >>vns_main.c

vns_main.f: FRC

vns_config.c: ${NAMED_SRC_DIR}/ns_config.c vns_config.f
	cat ${NAMED_SRC_DIR}/ns_config.c | \
	sed "s/^ *add_log_channel *(/ _add_log_channel(/" \
	>vns_config.c
	cat vns_config.f >>vns_config.c

vns_config.f: FRC

vdb_load.c: ${NAMED_SRC_DIR}/db_load.c vdb_load.f
	cat ${NAMED_SRC_DIR}/db_load.c |sed "s/^ *db_load *(/ _db_load(/" >vdb_load.c
	cat vdb_load.f >>vdb_load.c

vdb_load.f: FRC

vns_parser.c: ${NAMED_SRC_DIR}/ns_parser.c vns_parser.f
	cat ${NAMED_SRC_DIR}/ns_parser.c vns_parser.f >vns_parser.c

vns_parser.f: FRC

tmp_version.${O}: tmp_version.c

tmp_version.c: version.c Makefile ../Makefile ${SRCS} ${HDRS}
	(u=$${USER-root} d=`pwd` h=`${HOSTNAMECMD}` t=`date`; \
	sed -e "s|%WHEN%|$${t}|" -e "s|%VERSION%|"${VER}"|" \
	    -e "s|%WHOANDWHERE%|$${u}@$${h}:$${d}|" \
	    < version.c > tmp_version.c); sleep 1

pathnames.h: ${TOP}/.settings Makefile pathtemplate.h
	rm -f pathnames.h
	sed -e "s|%DESTSBIN%|${DESTSBIN}|" \
	    -e "s|%DESTEXEC%|${DESTEXEC}|" \
	    -e "s|%DESTETC%|${DESTETC}|" \
	    -e "s|%DESTRUN%|${DESTRUN}|" \
	    < pathtemplate.h > pathnames.h

.c.${O}:
	${CC} ${CPPFLAGS} ${CFLAGS} ${BOUNDS} -c $*.c

distclean: clean
	rm -f vns_parser.c
	rm -f vns_main.c
	rm -f vns_config.c
	rm -f vdb_load.c

clean: FRC
	rm -f ${PROG}${EXE} ${VOBJS} core .depend
	rm -f *.BAK *.CKP *~ *.orig
	rm -f tmp_version.c tmp_version.${O}
	rm -f pathnames.h y.tab.h y.tab.c

depend: ${SRCS} pathnames.h
	mkdep ${CPPFLAGS} -I${INCL} -I${PORTINCL} ${DEFS} ${SRCS}

${DESTDIR}${DESTSBIN}:
	mkdir -p ${DESTDIR}${DESTSBIN}

install: ${DESTDIR}${DESTSBIN} ${PROG}${EXE}
	${INSTALL} ${STRIP} -c ${INSTALL_EXEC} -m 755 ${PROG}${EXE} ${DESTDIR}${DESTSBIN}/${PROG}${EXE}

links: FRC
	@ln -s SRC/*.[chy] SRC/test .; rm -f ns_parser.[ch]

tags: FRC
	ctags ${SRCS} *.h

FRC:

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
