#
# Copyright (c) 1980 Regents of the University of California.
# All rights reserved.  The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
#	@(#)Makefile	5.6 (Berkeley) 8/26/85
#
DESTDIR=
CFLAGS=	-O -20

# Programs that have separate non 4.3 source.
#
CNFS=	mount.c umount.c edquota.c quot.c quotacheck.c quotaon.c repquota.c
CISI=	

# Programs that live in subdirectories, and have makefiles of their own.
#
SUBDIR=	config dump dump.4.1 fsck ftpd getty htable implog named restore \
	disktab routed talkd termcap tftpd timed tzone XNSrouted \
	spconfig

# Shell scripts that need only be installed and are never removed.
#
SCRIPT=	fastboot fasthalt mklost+found mkdual

# C programs that live in the current directory and do not need
# explicit make lines.
#
STD=	ac accton bad144 badsect catman chown \
	clri comsat cron dcheck diskpart dumpfs edquota fingerd \
	gettable ifconfig halt icheck inetd newfs mkfs mknod mkpasswd	\
	mkproto ncheck quot quotaon quotacheck reboot renice \
	repquota rexecd rlogind rmt route rshd rwhod sa savecore \
	shutdown slattach swapon syslogd telnetd tunefs update vipw \
	resetclu 

# Utilities dependent on machine type
#
MDEP20=   analyze.V20 dmesg.V20 kgmon.V20 pstat.V20 trfsstat.V20
MDEP30=   analyze.V30 dmesg.V30 kgmon.V30 pstat.V30 trfsstat.V30
MDEPVQX=  arp.VQX dmesg.VQX kgmon.VQX pstat.VQX trfsstat.VQX
20ETC=   dmesg.V20 kgmon.V20 pstat.V20 trfsstat.V20
30ETC=   dmesg.V30 kgmon.V30 pstat.V30 trfsstat.V30
VQXETC=   dmesg.VQX kgmon.VQX pstat.VQX trfsstat.VQX arp.VQX
20USRETC=   analyze.V20
30USRETC=   analyze.V30

# ISI: NFS versions of standard C programs
#
NFSRPC=	mount umount

# ISI: C programs that are unique to ISI
#
ISI=	bootd gdbad nwstat scsimon xfer
#KLUDGE ****************************
#ISISKY=	fpinit
ISISKY=

# C programs that live in the current directory and need explicit make lines.
#
NSTD= init

# Programs that must run setuid to root
#
SETUID=	ping diskst

# C programs that must run set-group-id kmem.
#
KMEM=	arp trpt

# ISI: files that are installed in /usr/etc and /etc
#
USRETC=	ac accton bootd catman edquota fingerd inetd quot	\
	quotacheck quotaon renice repquota rexecd rlogind rshd rwhod	\
	syslogd telnetd vipw analyze.V20 analyze.V30 comsat cron \
	sa savecore swapon update

ETC= bad144 badsect chown clri dcheck diskpart	\
	dumpfs gettable icheck ifconfig gdbad halt ncheck newfs mkfs mknod \
	mkproto nwstat reboot rmt route scsimon  \
	tunefs shutdown mkpasswd slattach resetclu xfer \
	${NFSRPC} ${NSTD}

# optional: not always made
OPTIONAL= mkhosts

all:	${SUBDIR} ${STD} ${NSTD} ${OPTIONAL} ${KMEM} ${SETUID} \
	${NFSRPC} ${ISI} ${MDEP20} ${MDEP30} ${MDEPVQX}

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

${STD} ${KMEM} ${SETUID}:
	cc ${CFLAGS} -o $@ $@.c

${ISI}:
	cc ${CFLAGS} -o $@ $@.c

${MDEP20}:
	cc ${CFLAGS} -o $@ $@.c

${MDEP30}:
	cc ${CFLAGS} -o $@ $@.c -DM68030

${MDEPVQX}:
	cc ${CFLAGS} -o $@ $@.c -DVQX -DM68020



#KLUDGE ****************************
#${ISISKY}:	fpinit.c
#	cc -f ${CFLAGS} -o $@ $@.c

${NSTD}:
	cc ${CFLAGS} -o $@ $@.c -lvt

${NFSRPC}:
	cc ${CFLAGS} -o $@ $@.c -lrpcsvc

# ISI: link different versions of common source...
#
src_43:
	for i in ${CNFS} ${CISI}; do (rm -f $$i; ln -s $$i.43 $$i); done
	
src_nfs:
	for i in ${CNFS}; do (rm -f $$i; ln -s $$i.nfs $$i); done

src_isi:
	for i in ${CISI}; do (rm -f $$i; ln -s $$i.isi $$i); done

install: install-dist

install-dist: ${ETC} ${USRETC} ${NFSRPC} ${OPTIONAL} ${KMEM} \
	 ${SETUID}
	-mkdir ${DESTDIR}/etc
	-for i in ${SUBDIR}; do \
		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
	-for i in ${SCRIPT}; do (install -c $$i.sh ${DESTDIR}/etc/$$i); done
	install -c syslogd.conf ${DESTDIR}/etc/syslog.conf
	-for i in ${ETC}; do (install -s $$i ${DESTDIR}/etc/$$i); done
	-for i in ${20ETC}; do (install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/.$$i); done
	-for i in ${30ETC}; do (install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/.$$i); done
	-for i in ${VQXETC}; do (install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/.$$i); done
	-chmod 0755 ${DESTDIR}/etc/.trfsstat.V20
	-chgrp staff ${DESTDIR}/etc/.trfstat.V20
	-chmod 0755 ${DESTDIR}/etc/.trfsstat.V30
	-chgrp staff ${DESTDIR}/etc/.trfsstat.V30
	-chmod 0755 ${DESTDIR}/etc/.trfsstat.VQX
	-chgrp staff ${DESTDIR}/etc/.trfsstat.VQX
	-mkdir ${DESTDIR}/usr/etc
	-for i in ${USRETC}; do \
		(install -s $$i ${DESTDIR}/usr/etc/$$i; \
		rm -f ${DESTDIR}/etc/$$i; \
		cd ${DESTDIR}/; ln -s /usr/etc/$$i etc/$$i); done
	-for i in ${NFSRPC}; do (install -s $$i ${DESTDIR}/etc/$$i); done
	-for i in ${OPTIONAL}; do \
		(if [ -f $$i ]; then install -s $$i ${DESTDIR}/etc/$$i; fi); done
	-for i in ${SETUID}; do \
		(install -o root -m 4755 -s $$i ${DESTDIR}/etc/$$i); done
	-for i in ${KMEM}; do \
		(install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/$$i); done
	-install -g kmem -m 2755 -s arp.VQX ${DESTDIR}/etc/arp.VQX
	-install -s -c analyze.V20 ${DESTDIR}/usr/etc/.analyze.V20	
	-install -s -c analyze.V30 ${DESTDIR}/usr/etc/.analyze.V30
	-rm ${DESTDIR}/etc/.analyze.V20
	-rm ${DESTDIR}/etc/.analyze.V30
	-ln -s ${DESTDIR}/usr/etc/.analyze.V20 ${DESTDIR}/etc/.analyze.V20
	-ln -s ${DESTDIR}/usr/etc/.analyze.V30 ${DESTDIR}/etc/.analyze.V30
	-chgrp operator ${DESTDIR}/etc/shutdown
	-chmod 4750 ${DESTDIR}/etc/shutdown
	-rm -f ${DESTDIR}/etc/quotaoff
	-ln -s /usr/etc/quotaon ${DESTDIR}/usr/etc/quotaoff
	-mkdir ${DESTDIR}/usr/spool/rwho
	-chmod 700 ${DESTDIR}/etc/init
	-ln -s .analyze.V20 ${DESTDIR}/etc/.analyze.V25	
	-ln -s .dmesg.V20 ${DESTDIR}/etc/.dmesg.V25	
	-ln -s .pstat.V20 ${DESTDIR}/etc/.pstat.V25	
	-ln -s .trfsstat.V20 ${DESTDIR}/etc/.trfsstat.V25	
	-ln -s .kgmon.V20 ${DESTDIR}/etc/.kgmon.V25	
	

clean:
	-rm -f a.out core *.s *.o
	-for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} clean); done
	-rm -f ${STD} ${NSTD} ${KMEM} ${SETUID} 
	-rm -f ${NFSRPC}
	-rm -f ${MDEP20} ${MDEP30} ${MDEPVQX}

FRC:

depend:
	for i in ${STD} ${NSTD} ${KMEM} ${SETUID} ${NFSRPC}; do \
	    cc -M ${INCPATH} $$i.c | sed 's/\.o//' | \
	    awk ' { if ($$1 != prev) { 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} and ${OPTIONAL} have explicit make lines given below.

mkhosts:
	@echo "Mkhosts only works with the dbm version of the hostent routines."
	@echo "If gethosts() is not in libc, mkhosts isn't installed."
	-cc ${CFLAGS} -o mkhosts mkhosts.c || rm mkhosts

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