#
# Makefile for rogue
# @(#)Makefile	4.17 (Berkeley) 9/29/82
#
GDIR = /snsr/games
HDRS=	rogue.h extern.h score.h
DOBJS=	vers.o extern.o armor.o chase.o command.o daemon.o daemons.o \
	fight.o init.o io.o list.o main.o misc.o monsters.o move.o \
	new_level.o options.o pack.o passages.o potions.o rings.o rip.o \
	rooms.o save.o scrolls.o sticks.o things.o weapons.o wizard.o
OBJS=	$(DOBJS) mach_dep.o
POBJS=	vers.po extern.po armor.po chase.po command.po daemon.po daemons.po \
	fight.po init.po io.po list.po main.po misc.po monsters.po move.po \
	new_level.po options.po pack.po passages.po potions.po rings.po rip.po \
	rooms.po save.po scrolls.po sticks.po things.po weapons.po wizard.po \
	.po mach_dep.po
CFILES=	vers.c extern.c armor.c chase.c command.c daemon.c daemons.c \
	fight.c init.c io.c list.c main.c misc.c monsters.c move.c \
	new_level.c options.c pack.c passages.c potions.c rings.c rip.c \
	rooms.c save.c scrolls.c sticks.c things.c weapons.c wizard.c \
	mach_dep.c

#CFLAGS=		-O -I/jb/ingres/arnold/=mb/=curses/screen -DDUMP
DEFS=		-DWIZARD -DDUMP -DNMTVAX # -I/jb/ingres/arnold/=lib/=curses
CFLAGS=		-O $(DEFS)
PROFLAGS=	-pg -O
#LDFLAGS=-i	# For PDP-11's
LDFLAGS=	# For VAXen
# CC=		/jb/ingres/arnold/=bin/cc

SCOREFILE=	/snsr/games/.rogue/rogue_roll
SF=		-DSCOREFILE='"$(SCOREFILE)"'
NAMELIST=	/vmunix
NL=		-DNAMELIST='"$(NAMELIST)"'
MACHDEP=	# -DMAXLOAD=40 -DLOADAV -DCHECKTIME=4
BINARY=		distr.out

VGRIND=/usr/ucb/vgrind
CRLIB=	-lcurses
#CRLIB=	/jb/ingres/arnold/=lib/=curses/libcurses.a
PCRLIB= -lcurses
MISC=	xstr.c Makefile Dist.fmt prob.c findpw.c
# for sites without sccs front end, GET= get
GET=	get
LD=	ld

.SUFFIXES: .po

.c.po:
	@echo $(CC) -c $(PROFLAGS) $*.c
	@cc -E $(PROFLAGS) $*.c | xstr -c -
	@cc -c $(PROFLAGS) x.c
	@mv x.o $*.po

.c.o:
	@echo $(CC) -c $(CFLAGS) $*.c
	@cc -E $(CFLAGS) $*.c | xstr -c -
	@cc -c $(CFLAGS) x.c
	@mv x.o $*.o

.DEFAULT:
	$(GET) SCCS/s.$@

a.out: $(HDRS) $(OBJS) xs.o
	@rm -f x.c
	$(CC) $(LDFLAGS) xs.o $(OBJS) $(CRLIB) -ltermlib
	size a.out

vers.o:
	$(CC) -c $(CFLAGS) vers.c

mach_dep.o:
	$(CC) -c $(CFLAGS) $(SF) $(NL) $(MACHDEP) mach_dep.c

xs.o: strings
	xstr
	$(CC) -c $(CFLAGS) xs.c

xstr: xstr.c
	$(CC) -s -O -o xstr xstr.c

rogue: newvers a.out
	cp a.out rogue
	strip rogue

install: rogue
#	cp rogue $(DESTDIR)/usr/games/rogue
	install -pog 700 games snsr rogue $(GDIR)

distr: rmmach distmod.o mach_dep.o
	@rm -f x.c
	$(CC) -s $(LDFLAGS) -o =bin/$(BINARY) distmod.o mach_dep.o $(CRLIB) -ltermlib
	size =bin/$(BINARY)

rmmach:
	rm -f mach_dep.o

distmod.o: $(DOBJS) xs.o
	@rm -f x.c
	-$(LD) -r -x -o distmod.o xs.o $(DOBJS)

findpw: findpw.c
	$(CC) -s -o findpw findpw.c

prob: prob.o extern.o xs.o
	$(CC) -O -o prob prob.o extern.o xs.o

prob.o: prob.c rogue.h
	$(CC) -O -c prob.c

scedit: scedit.o scmisc.o vers.o
	$(CC) -o scedit vers.o scedit.o scmisc.o -lcurses

scmisc.o scedit.o:
	$(CC) -O -c $(SF) $*.c

p.out:	$(HDRS) $(POBJS) xs.po
	@rm -f x.c
	$(CC) $(PROFLAGS) $(LDFLAGS) -o p.out xs.po $(POBJS) $(CRLIB) -ltermlib
	size p.out

vers.po:
	@echo $(CC) -c $(PROFLAGS) vers.c
	@ln vers.c x.c
	@cc -c $(PROFLAGS) $(SF) x.c
	@mv x.o vers.po
	@rm -f x.c

mach_dep.po:
	$(CC) -c $(PROFLAGS) $(SF) $(NL) $(MACHDEP) mach_dep.c
	mv mach_dep.o mach_dep.po

xs.po: strings
	xstr
	@echo $(CC) -c $(PROFLAGS) xs.c
	@mv xs.c x.c
	@$(CC) -c $(PROFLAGS) x.c
	@mv x.o xs.po

newvers:
#	$(GET) -e vers.c
#	sccs delta -y vers.c

tags: $(HDRS) $(CFILES)
	ctags -u $?
	ed - tags < :ctfix
	sort tags -o tags

lint:
	/bin/csh -c "lint -hxbc $(DEFS) $(MACHDEP) $(SF) $(NL) $(CFILES) -lcurses > linterrs"

clean:
	rm -f $(POBJS) $(OBJS) core a.out p.out rogue strings make.out ? rogue.tar vgrind.* x.c x.o xs.c xs.o linterrs findpw distmod.o xs.po

count:
	wc -l $(HDRS) $(CFILES)

realcount:
	cc -E $(CFILES) | ssp - | wc -l

update:
	ar uv .SAVE $(CFILES) $(HDRS) Makefile

dist:
	cp $(CFILES) $(HDRS) Makefile /ra/csr/toy/_dist

xtar: $(HDRS) $(CFILES) $(MISC)
	rm -f rogue.tar
	tar cf rogue.tar $? :ctfix
	touch xtar

vgrind:
	@csh $(VGRIND) -t -h "Rogue Version 3.7" $(HDRS) *.c > vgrind.out
	@ctags -v $(HDRS) *.c > index
	@csh $(VGRIND) -t -x index > vgrind.out.tbl

cfiles: $(CFILES)
