#	Makefile	4.39	85/10/11
#
DESTDIR=
CFLAGS=	-O

# Programs that live in subdirectories, and have makefiles of their own.
#
# ISI KLUDGE STUFF THAT NEEDS WORK
#	f77
SUBDIR=	at calendar dc diction diff3 efl eqn f77 find graph learn lex lint \
	m4 neqn nroff plot prof ratfor refer spell struct tbl tip troff uucp \
	xsend yacc
NFSDIR= rpcgen

# Shell scripts that need only be installed and are never removed.
#
SCRIPT=	install lorder nohup

# C programs that live in the current directory and do not need
# explicit make lines.
#
STD=	ar11 basename cal cb checkeq col comm crypt deroff \
	fgrep file join look mesg ptx ranlib \
	rev sleep sort spline split sum tabs tc tk touch tr tsort tty \
	uniq units 

# Standard NFS utilities
#
NFS=	ypcat ypmatch ypwhich

RPC=	yppasswd

# C programs that live in the current directory and need explicit make lines.
# (make depend has special rules for these files)
#
NSTD=	bc das egrep

# Programs that must run set-group-id kmem.
#
KMEM=	iostat

all:	${SUBDIR} ${STD} ${NSTD} ${KMEM} nfs

nfs:	${NFSDIR} ${NFS} ${RPC}

${SUBDIR} ${NFSDIR}: FRC
	cd $@; make ${MFLAGS}
	@echo "------------------------------"

FRC:


bc egrep:
	${YACC} ${YFLAGS} $@.y
	${CC} -c ${CFLAGS} y.tab.c
	mv y.tab.o $@.o
	${CC} -o $@ $@.o
	rm -f $@.o

das:	das.c
	${CC} ${CFLAGS} -DSTANDALONE -o das das.c

${STD} ${KMEM} ${NFS}:
	${CC} ${CFLAGS} -o $@ $@.c

${RPC}:
	${CC} ${CFLAGS} -o $@ $@.c -lrpcsvc

install: install-dist install-nfs

install-dist: ${STD} ${NSTD} ${KMEM}
	-mkdir ${DESTDIR}/usr/bin
	-for i in ${SUBDIR}; do \
		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
	-for i in ${SCRIPT}; do \
		(install -c -m 555 $$i.sh ${DESTDIR}/usr/bin/$$i); done
	-for i in ${STD} ${NSTD}; do \
		(install -s $$i ${DESTDIR}/usr/bin/$$i); done
	-for i in ${KMEM}; do \
		(install -s -g kmem -m 2755 $$i ${DESTDIR}/usr/bin/$$i); done
	install -c units.lib ${DESTDIR}/usr/lib/units

install-nfs: ${NFS} ${RPC}
	-mkdir ${DESTDIR}/usr/bin
	-for i in ${NFSDIR}; do \
		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
	-for i in ${NFS} ${RPC}; do \
		(install -s $$i ${DESTDIR}/usr/bin/$$i); done

clean:
	rm -f a.out core *.s *.o y.tab.c
	for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} clean); done
	rm -f ${STD} ${NSTD} ${KMEM}

# beware of the non-standard stuff for bc and egrep
depend:
	for i in ${STD} ${KMEM}; do \
	    cc -M ${INCPATH} $$i.c | sed 's/\.o//' | \
	    awk ' { if ($$1 != prev) \
		{ if (rec != "") print rec; rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		else rec = rec " " $$2 } } \
		END { print rec } ' >> makedep; done
	for i in bc egrep; do \
	    cc -M ${INCPATH} $$i.y | sed 's/\.o//' | \
	    awk ' { if ($$1 != prev) \
		{ if (rec != "") print rec; rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		else rec = rec " " $$2 } } \
		END { print rec } ' >> makedep; done
	echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
	echo '$$r makedep' >>eddep
	echo 'w' >>eddep
	cp Makefile Makefile.bak
	ed - Makefile < eddep
	rm eddep makedep
	echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
	echo '# see make depend above' >> Makefile

# Files listed in ${NSTD} have explicit make lines given below.

# DO NOT DELETE THIS LINE -- make depend uses it
