CONF =	Config
TARGETS	= xntpd/xntpd xntpdc/xntpdc ntpq/ntpq ntpdate/ntpdate \
	  xntpres/xntpres authstuff/authspeed util/tickadj
MAKE=	make

all:	$(TARGETS)

xntpd/xntpd:	lib/libntp.a
	cd xntpd ; $(MAKE) $(MFLAGS) xntpd

xntpdc/xntpdc:	lib/libntp.a
	cd xntpdc ; $(MAKE) $(MFLAGS) xntpdc

ntpq/ntpq:	lib/libntp.a
	cd ntpq ; $(MAKE) $(MFLAGS) ntpq

ntpdate/ntpdate:	lib/libntp.a
	cd ntpdate ; $(MAKE) $(MFLAGS) ntpdate

authstuff/authspeed:	lib/libntp.a
	cd authstuff ; $(MAKE) $(MFLAGS) all

xntpres/xntpres:	lib/libntp.a
	cd xntpres ; $(MAKE) $(MFLAGS) xntpres

util/tickadj:
	cd util ; $(MAKE) $(MFLAGS) tickadj

lib/libntp.a:	lib/*.c
	cd lib ; $(MAKE) $(MFLAGS)

neat:
	rm -f $(CONF).sed eddep makedep Makefile.bak make.log make.out *.tar

clean:	neat
	cd xntpd ; $(MAKE) $(MFLAGS) clean
	cd xntpdc ; $(MAKE) $(MFLAGS) clean
	cd ntpq ; $(MAKE) $(MFLAGS) clean
	cd ntpdate ; $(MAKE) $(MFLAGS) clean
	cd xntpres ; $(MAKE) $(MFLAGS) clean
	cd lib ; $(MAKE) $(MFLAGS) clean
	cd authstuff ; $(MAKE) $(MFLAGS) clean
	cd clockstuff ; $(MAKE) $(MFLAGS) clean
	cd util ; $(MAKE) $(MFLAGS) clean
	cd gizmo ; $(MAKE) $(MFLAGS) clean

install:	all
	cd xntpd ; $(MAKE) $(MFLAGS) install
	cd xntpdc ; $(MAKE) $(MFLAGS) install
	cd ntpq ; $(MAKE) $(MFLAGS) install
	cd ntpdate ; $(MAKE) $(MFLAGS) install
	cd xntpres ; $(MAKE) $(MFLAGS) install

$(CONF).sed:	$(CONF) Makefile
	sed -n -e 's:^\([^ 	]*\)=[ 	]*\(.*\):s~^\1=.*~&~:p' < $(CONF) > $@

depend:
	find . \( -name Makefile -o -name makefile \) -print > eddep
	sed -e 's:^\./::' -e '/^Makefile/d' < eddep | \
		awk '/./	{ for (i = 0; i < NF; ++i) \
					if (length(line) == 0) \
						line = $$i ; \
					else { \
						if (length(line " " $$i) < 70) \
							line = line " " $$i ; \
						else { \
							print line ; \
							line = $$i ; \
						} ; \
					} \
				} \
			END	{ if (length(line) > 0) print line }' | \
	    sed -e 's/^/makefiles: /' > makedep
	echo >> makedep
	sed -e 's:^\./::' -e '/^Makefile/d' -e 's/$$/:	$${CONF}.sed/' -e x \
	    -e 's/.*/	mv $$@ $$@.bak ; sed -f $${CONF}.sed < $$@.bak > $$@/' \
	    -e x -e G < eddep >> makedep
	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
	echo '$$r makedep' >>eddep
	echo 'w' >>eddep
	cp Makefile Makefile.bak
	/bin/ed - Makefile < eddep
	rm eddep makedep

undepend:
	echo '/DO NOT DELETE THIS LINE/,$$d' > ${CONF}.sed
	$(MAKE) $(MFLAGS) makefiles
	rm -f ${CONF}.sed

# DO NOT DELETE THIS LINE -- It is used by 'make depend' to update this file
makefiles: lib/Makefile xntpd/Makefile xntpdc/Makefile ntpdate/Makefile
makefiles: authstuff/Makefile ntpq/Makefile xntpres/Makefile clockstuff/Makefile
makefiles: util/Makefile gizmo/Makefile

lib/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
xntpd/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
xntpdc/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
ntpdate/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
authstuff/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
ntpq/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
xntpres/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
clockstuff/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
util/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
gizmo/Makefile:	${CONF}.sed
	mv $@ $@.bak ; sed -f ${CONF}.sed < $@.bak > $@
