CC =	 cc
CPP =	 cc -E
CFLAGS = -Iconf # -pg -g -O
LDFLAGS =   
BIN_PROG =	nn  nnusage nngrab nnstats 
BIN_LINK =	nncheck nnadmin nntidy nngoback nngrep nnpost nnbatch
LIB_PROG =	aux upgrade_rc
MASTER_PROG =	nnmaster back_act nnspew
SHELL = /bin/sh
MASTER = master.o collect.o expire.o proto.o hostname.o \
	global.o options.o active.o db.o nntp.o \
	pack_date.o pack_name.o pack_subject.o news.o digest.o
NN = 	nn.o admin.o proto.o global.o options.o db.o nntp.o \
	init.o variable.o term.o keymap.o macro.o regexp.o \
	menu.o more.o newsrc.o group.o folder.o dir.o \
	sort.o articles.o sequence.o kill.o active.o fullname.o \
	answer.o reroute.o hostname.o save.o unshar.o decode.o execute.o \
	pack_date.o pack_name.o pack_subject.o news.o digest.o match.o stubs.o
ACCT = account.o global.o options.o proto.o hostname.o 
MAIL = nnmail.o reroute.o hostname.o global.o options.o
L=/usr/local/lib

all:	$(BIN_PROG) $(LIB_PROG) inst

client: $(BIN_PROG) $(LIB_PROG) inst
master: $(MASTER_PROG) inst
nn:	 $(NN)
	@echo linking nn
	$(CC) $(CFLAGS) $(NN) -o nn -ltermlib $L/libnov.a $L/libuseful.a # $L/libmalloc.a $L/localtime.4.0.fixed.o # $L/fmcount.o
nnmaster:  $(MASTER)
	@echo linking nnmaster
	$(CC) $(CFLAGS) $(MASTER) -o nnmaster /staff/geoff/lib/libnov.a /usr/src/news/c-news/libcnews.a
nnmail:	 $(MAIL)
	@echo linking nnmail
	$(CC) $(CFLAGS) $(MAIL)  -o nnmail
nnstats: nnstats.sh prefix
	cat prefix nnstats.sh > nnstats ; chmod +x nnstats
nnusage: nnusage.sh prefix
	cat prefix nnusage.sh > nnusage ; chmod +x nnusage
nngrab:	nngrab.sh prefix
	cat prefix nngrab.sh > nngrab ; chmod +x nngrab
aux:	 aux.sh prefix
	cat prefix aux.sh > aux ; chmod +x aux
upgrade_rc: upgrade_rc.sh prefix
	cat prefix upgrade_rc.sh > upgrade_rc ; chmod +x upgrade_rc
nnacct:  $(ACCT)
	@echo linking nnacct
	$(CC) $(CFLAGS) $(ACCT)  -o nnacct
back_act: back_act.sh prefix
	cat prefix back_act.sh > back_act ; chmod +x back_act
nnspew:	nnspew.sh prefix
	cat prefix nnspew.sh > nnspew ; chmod +x nnspew
prefix:	config.h mkprefix
	./mkprefix prefix < /dev/null > prefix
mkprefix:  prefix.o global.o
	$(CC) -o mkprefix $(CFLAGS) prefix.o global.o $(LDFLAGS)
update.h:	config.h patchlevel.h Makefile
	@sh -c "[ -f update.h ] || (echo 0 > update.h)"
	@sh -c "expr `cat update.h` + 1 > update1.h && mv update1.h update.h"
	@echo configuration number updated to `cat update.h`
cvt-help:	 config.h cvt-help.c
	$(CC) -o cvt-help cvt-help.c $(LDFLAGS)
usercheck:	 config.h usercheck.c
	$(CC) -o usercheck usercheck.c $(LDFLAGS)
inst: config.h xmakefile inst.sh cvt-help usercheck mkprefix man/nn.1
	@echo building install script: ./inst
	@./mkprefix full < /dev/null > inst
	@echo BIN_PROG=\"$(BIN_PROG)\" >> inst
	@echo BIN_LINK=\"$(BIN_LINK)\" >> inst
	@echo LIB_PROG=\"$(LIB_PROG)\" >> inst
	@echo MASTER_PROG=\"$(MASTER_PROG)\" >> inst
	@cat inst.sh >> inst
	@chmod 755 inst
man/nn.1:	man/nn.1.A man/nn.1.B man/nn.1.C man/nn.1.D
	-[ ! -f man/nn.1 ] || mv man/nn.1 man/nn.1~
	cat man/nn.1.? > man/nn.1
clean:
	rm -f $(BIN_PROG) $(LIB_PROG) $(MASTER_PROG) cvt-help usercheck
	rm -f prefix mkprefix inst
	rm -f man/nn.1 man/nn.1~
account.o:	account.c config.h global.h vararg.h options.h proto.h
active.o:	active.c config.h global.h vararg.h data.h
admin.o:	admin.c config.h global.h vararg.h data.h db.h term.h \
		proto.h
answer.o:	answer.c config.h global.h vararg.h data.h news.h term.h \
		keymap.h options.h
articles.o:	articles.c config.h global.h vararg.h data.h db.h articles.h
collect.o:	collect.c config.h global.h vararg.h data.h db.h news.h
db.o:		db.c config.h global.h vararg.h data.h db.h
decode.o:	decode.c config.h global.h vararg.h data.h
digest.o:	digest.c config.h global.h vararg.h data.h news.h debug.h
dir.o:		dir.c config.h global.h vararg.h data.h articles.h dir.h
execute.o:	execute.c config.h global.h vararg.h data.h term.h
expire.o:	expire.c config.h global.h vararg.h data.h db.h dir.h
folder.o:	folder.c config.h global.h vararg.h data.h articles.h news.h \
		term.h menu.h
fullname.o:	fullname.c config.h global.h
global.o:	global.c config.h global.h vararg.h data.h \
		patchlevel.h update.h
group.o:	group.c config.h global.h vararg.h data.h articles.h db.h \
		term.h menu.h keymap.h regexp.h
hostname.o:	hostname.c config.h
init.o:		init.c config.h global.h vararg.h data.h articles.h term.h \
		keymap.h menu.h
keymap.o:	keymap.c config.h global.h vararg.h data.h keymap.h term.h
kill.o:		kill.c config.h global.h vararg.h data.h term.h regexp.h
macro.o:	macro.c config.h global.h vararg.h data.h keymap.h term.h
master.o:	master.c config.h global.h vararg.h data.h db.h \
		options.h proto.h
match.o:	match.c config.h global.h regexp.h
menu.o:		menu.c config.h global.h vararg.h data.h articles.h term.h \
		keymap.h menu.h regexp.h
more.o:		more.c config.h global.h vararg.h data.h news.h term.h \
		menu.h keymap.h regexp.h
news.o:		news.c config.h global.h vararg.h data.h news.h
nn.o:		nn.c config.h global.h vararg.h data.h menu.h term.h \
		keymap.h options.h articles.h proto.h
nnmail.o:	nnmail.c config.h global.h vararg.h data.h options.h
nntp.o:		nntp.c config.h global.h vararg.h data.h nntp.h
options.o:	options.c config.h global.h vararg.h data.h options.h
pack_date.o:	pack_date.c config.h global.h vararg.h data.h
pack_name.o:	pack_name.c config.h global.h vararg.h data.h
pack_subject.o:	pack_subject.c config.h global.h vararg.h data.h
prefix.o:	config.h global.h
proto.o:	proto.c config.h global.h proto.h
newsrc.o:	newsrc.c config.h global.h vararg.h data.h term.h debug.h
regexp.o:	regexp.c config.h global.h vararg.h data.h regexp.h
reroute.o:	reroute.c config.h global.h vararg.h data.h
save.o:		save.c config.h global.h vararg.h data.h term.h keymap.h \
		news.h
selection.o:	selection.c config.h global.h vararg.h data.h term.h\
		 articles.h
sequence.o:	sequence.c config.h global.h vararg.h data.h debug.h
sort.o:		sort.c config.h global.h vararg.h data.h
term.o:		term.c config.h global.h vararg.h data.h term.h keymap.h
unshar.o:	unshar.c config.h global.h vararg.h data.h
variable.o:	variable.c config.h global.h vararg.h data.h
nn1:	$(NN)
	$(CC) -o nn1 -Mnn1 $(CFLAGS) $(NN) $(LDFLAGS) -ltermlib 
nnmaster1: $(MASTER)
	$(CC) -o nnmaster1 -Mnnmaster1 $(CFLAGS) $(MASTER) $(LDFLAGS) 
lint:
	echo LINTING NN
	echo LINTING MASTER
calls:
	calls -Iconf $(NN:.o=.c)
