#
# 	$Source: /usr/src/local/chaos/cmd/RCS/Makefile,v $
#	$Header: Makefile,v 1.4 87/05/15 22:26:20 jbs Exp $
#

DEFINES = -DBSD42
DESTDIR =
# which mailer to use
MAILER = chaosmail
# where the system is built
SYSINCLUDES = /src/local/chaos/cmd
# if the chaos includes are any where special
INCLUDES = /usr/local/h
# where the user programs go
DESTUSERS = $(DESTDIR)/usr/local
# where the servers go - this is carried into chserver
DESTSERVERS = $(DESTDIR)/usr/local/lib/chaos
# where the daemons goes
DESTDAEMONS = $(DESTDIR)/etc
# where the mail spooler goes
DESTMAILER = $(DESTDIR)/usr/local/lib/chaos
# where the host library lives
HOSTLIB = ./libhosts.a
# where the file server login file lives
FILEUTMP = /etc/chfile.utmp
# Major device number of CHAOS device driver
CHRMAJOR = 40
SERVERS = NAME SEND FILE TELNET RTAPE SUPDUP TTYLINK MAIL SMTP LGP

# Servers that want to only read from the network
RSERVERS = SEND LGP

# Servers that want to only write to the network
WSERVERS = NAME

USERS = chsend chstat chup hostat chtelnet cftp supdup chfinger chtime \
	chtape prtable finger
DAEMONS = chserver chinit cheaddr

PROGS = $(USERS) $(SERVERS) $(DAEMONS) $(MAILER) chmkdev
CFLAGS = -O -I$(INCLUDES) -DDESTSERVERS=\"$(DESTSERVERS)\" \
	 -DFILEUTMP=\"$(FILEUTMP)\" -DDESTUSERS=\"$(DESTUSERS)\" \
	 -DCHRMAJOR=$(CHRMAJOR) $(DEFINES)
all: $(PROGS)

chsend:		chsend.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chmkdev:	chmkdev.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chstat:		chstat.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

prtable:	prtable.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chtelnet:	chtelnet.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

cftp:		cftp.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

supdup:		supdup.o /usr/lib/libtermlib.a
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB) -ltermlib

chfinger:	chfinger.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

finger:	finger.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

finger.o: finger.c
	$(CC) $(CFLAGS) -DCHAOS -c finger.c

hostat:		hostat.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chup:		chup.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chtime:		chtime.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

chtape:	chtape.o record.o
	$(CC) -o $@ $@.o record.o chopen.o $(HOSTLIB)

chtape.o:	chtape.c record.h RTAPE.h

MAIL:		MAIL.o $(HOSTLIB)
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

NAME:		NAME.o
	$(CC) -o $@ $@.o chopen.o

SEND:		SEND.o $(HOSTLIB)
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

SMTP:		SMTP.o $(HOSTLIB)
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

TELNET:		TELNET.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

SUPDUP:		SUPDUP.o
	$(CC) -o $@ $@.o chopen.o $(HOSTLIB)

TTYLINK:	TTYLINK.o
	$(CC) -o $@ $@.o chopen.o

RTAPE:		RTAPE.o record.o
	$(CC) -o $@ $@.o record.o chopen.o

RTAPE.o record.o: record.h

LGP:	LGP.o
	$(CC) -o $@ $@.o chopen.o

$(USERS): chopen.o $(HOSTLIB)

$(SERVERS): chopen.o

chstat.o: chstat.c
	$(CC) -c $(CFLAGS) -I$(SYSINCLUDES) -O chstat.c

prtable.o: prtable.c
	$(CC) -c $(CFLAGS) -I$(SYSINCLUDES) -O prtable.c

FILE.o glob.o: FILE.h

FILE: FILE.o glob.o chopen.o
	$(CC) -o $@ $@.o glob.o chopen.o $(HOSTLIB)

chserver: chserver.o chopen.o
	$(CC) -o chserver chserver.o chopen.o

chinit: chinit.o
	$(CC) -o chinit chinit.o $(HOSTLIB)

cheaddr: cheaddr.o
	$(CC) -o cheaddr cheaddr.o

chmailer: chmailer.o
	$(CC) -o chmailer chmailer.o chopen.o $(HOSTLIB)

chmail: chmail.o
	$(CC) -o chmail chmail.o $(HOSTLIB)

chaosmail: chaosmail.o
	$(CC) -o chaosmail chaosmail.o chopen.o $(HOSTLIB)

install:	$(PROGS)
	cp $(SERVERS) $(DESTSERVERS)
	cp $(USERS) $(DESTUSERS)
	-rm $(DESTUSERS)/chtn
	ln $(DESTUSERS)/chtelnet $(DESTUSERS)/chtn
	-cd $(DESTDAEMONS); rm -f $(DAEMONS)
	cp $(DAEMONS) $(DESTDAEMONS)
	cp $(MAILER) $(DESTMAILER)
	cd $(DESTMAILER); strip $(MAILER); #/etc/chown network $(MAILER);chmod 4755 $(MAILER)
	cd $(DESTDAEMONS); chmod 700 $(DAEMONS); strip $(DAEMONS)
	cd $(DESTSERVERS); chmod 770 $(SERVERS); chmod 750 $(RSERVERS); chmod 730 $(WSERVERS); strip $(SERVERS)
	cd $(DESTUSERS); chmod 755 $(USERS); strip $(USERS)
	chgrp kmem chstat ; chmod 2755 chstat
	chgrp kmem prtable ; chmod 2755 prtable
clean:
	rm -f $(PROGS) *.o

special: chmkdev
	chmkdev | sh
	chmod 666 /dev/ch*
