###############################################################################
#  The BYTE UNIX Benchmarks - Release 2
#          Module: Makefile   SID: 2.1 8/6/89 22:24:15
#          
###############################################################################
# Bug reports, patches, comments, suggestions should be sent to:
#
#	Ben Smith or Rick Grehan at BYTE Magazine
#	bensmith@bytepb.UUCP    rick_g@bytepb.UUCP
#
###############################################################################
#  Modification Log: 7/28/89 cleaned out workload files
#
###############################################################################
ID="@(#)Makefile:2.1 -- 8/6/89 22:24:15";
SHELL = /bin/sh
CFLAGS = -DSysV   #may be: SysV, BSD4v1, BSD4v2
OPTON = -O        #optimization level 1 -- check your compiler man
OPTOFF = -Od      #optimization off -- check your compiler man
WORKDIR=./Work
BINDIR = ./pgms
SRCDIR = ./src
SCRPDIR = ./pgms
DOCDIR = ./doc
TOOLDIR = ./tools
INCLDIR = /usr/include
LIBDIR = /lib
PROGS = $(BINDIR)/arithoh $(BINDIR)/register $(BINDIR)/short \
	$(BINDIR)/int $(BINDIR)/long $(BINDIR)/float $(BINDIR)/double \
	$(BINDIR)/hanoi $(BINDIR)/randmem $(BINDIR)/seqmem \
	$(BINDIR)/fstime $(BINDIR)/syscall $(BINDIR)/context1 \
	$(BINDIR)/pipe $(BINDIR)/spawn $(BINDIR)/execl \
	$(BINDIR)/dhry2 $(BINDIR)/dhry2reg $(BINDIR)/limit \
	$(BINDIR)/clock $(BINDIR)/precision $(BINDIR)/mkperm \
	$(BINDIR)/buildbms $(BINDIR)/dbmserv $(BINDIR)/dbmscli 
SCRIPTS = $(BINDIR)/BSDtime.awk $(BINDIR)/SysVtime.awk $(BINDIR)/byte.logo \
	$(BINDIR)/cleanup $(BINDIR)/dbprep $(BINDIR)/dhry.awk \
	$(BINDIR)/fs.awk $(BINDIR)/mem.awk $(BINDIR)/multi.sh \
	$(BINDIR)/sccs $(BINDIR)/time.awk $(BINDIR)/tst.sh
DOCS = $(DOCDIR)/Intro.nr $(DOCDIR)/README $(DOCDIR)/musbus.1
SOURCES = $(SRCDIR)/arith.c $(SRCDIR)/big.c $(SRCDIR)/buildbms.c \
	$(SRCDIR)/cctest.c $(SRCDIR)/clock.c $(SRCDIR)/context1.c \
	$(SRCDIR)/dbmscli.c $(SRCDIR)/dbmserv.c $(SRCDIR)/dhry.c \
	$(SRCDIR)/dhry.h $(SRCDIR)/dummy.c $(SRCDIR)/execl.c \
	$(SRCDIR)/fstime.c $(SRCDIR)/getopt.c $(SRCDIR)/hanoi.c \
	$(SRCDIR)/limit.c $(SRCDIR)/mem.c $(SRCDIR)/mkperm.c \
	$(SRCDIR)/pipe.c $(SRCDIR)/precision.c $(SRCDIR)/spawn.c \
	$(SRCDIR)/syscall.c 

# ######################### the big ALL ############################
all: stuff programs

programs: $(PROGS)

# Individual programs
$(BINDIR)/arithoh:	$(SRCDIR)/arith.c
	cc -o $(BINDIR)/arithoh ${CFLAGS} ${OPTON} -Darithoh $(SRCDIR)/arith.c
$(BINDIR)/register: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/register ${CFLAGS} ${OPTON} -Ddatum=register $(SRCDIR)/arith.c
$(BINDIR)/short: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/short ${CFLAGS} ${OPTON} -Ddatum=short $(SRCDIR)/arith.c
$(BINDIR)/int: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/int ${CFLAGS} ${OPTON} -Ddatum=int $(SRCDIR)/arith.c
$(BINDIR)/long: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/long ${CFLAGS} ${OPTON} -Ddatum=long $(SRCDIR)/arith.c
$(BINDIR)/float: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/float ${CFLAGS} ${OPTON} -Ddatum=float $(SRCDIR)/arith.c
$(BINDIR)/double: $(SRCDIR)/arith.c
	cc -o $(BINDIR)/double ${CFLAGS} ${OPTON} -Ddatum=double $(SRCDIR)/arith.c
$(BINDIR)/hanoi: $(SRCDIR)/hanoi.c
	cc -o $(BINDIR)/hanoi ${CFLAGS} ${OPTON} $(SRCDIR)/hanoi.c
$(BINDIR)/randmem: $(SRCDIR)/mem.c
	cc -o $(BINDIR)/randmem ${CFLAGS} ${OPTOFF} -Dawk -Drandom $(SRCDIR)/mem.c
$(BINDIR)/seqmem: $(SRCDIR)/mem.c
	cc -o $(BINDIR)/seqmem ${CFLAGS} ${OPTOFF} -Dawk $(SRCDIR)/mem.c
$(BINDIR)/fstime: $(SRCDIR)/fstime.c
	cc -o $(BINDIR)/fstime ${CFLAGS} ${OPTON} -Dawk=1 $(SRCDIR)/fstime.c
$(BINDIR)/syscall: $(SRCDIR)/syscall.c
	cc -o $(BINDIR)/syscall ${CFLAGS} ${OPTON} $(SRCDIR)/syscall.c
$(BINDIR)/context1: $(SRCDIR)/context1.c
	cc -o $(BINDIR)/context1 ${CFLAGS} ${OPTON} $(SRCDIR)/context1.c
$(BINDIR)/pipe: $(SRCDIR)/pipe.c
	cc -o $(BINDIR)/pipe ${CFLAGS} ${OPTON} $(SRCDIR)/pipe.c
$(BINDIR)/spawn: $(SRCDIR)/spawn.c
	cc -o $(BINDIR)/spawn ${CFLAGS} ${OPTON} $(SRCDIR)/spawn.c
$(BINDIR)/execl: $(SRCDIR)/execl.c $(SRCDIR)/big.c
	cc -o $(BINDIR)/execl ${CFLAGS} ${OPTON} $(SRCDIR)/execl.c
$(BINDIR)/keyb: $(SRCDIR)/keyb.c
	cc -o $(BINDIR)/keyb ${CFLAGS} ${OPTON} $(SRCDIR)/keyb.c
$(BINDIR)/limit: $(SRCDIR)/limit.c
	cc -o $(BINDIR)/limit ${CFLAGS} ${OPTON} $(SRCDIR)/limit.c
$(BINDIR)/dhry2: $(SRCDIR)/dhry.c $(SRCDIR)/dhry.h
	cc -o $(BINDIR)/dhry2 ${CFLAGS} ${OPTON} $(SRCDIR)/dhry.c
$(BINDIR)/dhry2reg: $(SRCDIR)/dhry.c $(SRCDIR)/dhry.h
	cc -o $(BINDIR)/dhry2reg -DREG=register ${CFLAGS} ${OPTON} $(SRCDIR)/dhry.c
$(BINDIR)/clock: $(SRCDIR)/clock.c
	cc -o $(BINDIR)/clock ${CFLAGS} ${OPTON} $(SRCDIR)/clock.c
$(BINDIR)/precision: $(SRCDIR)/precision.c
	cc -o $(BINDIR)/precision ${CFLAGS} ${OPTON} $(SRCDIR)/precision.c
$(BINDIR)/ttychk: $(SRCDIR)/ttychk.c
	cc -o $(BINDIR)/ttychk ${CFLAGS} ${OPTON} $(SRCDIR)/ttychk.c
$(BINDIR)/mkperm: $(SRCDIR)/mkperm.c
	cc -o $(BINDIR)/mkperm ${CFLAGS} ${OPTON} $(SRCDIR)/mkperm.c
$(BINDIR)/buildbms: $(SRCDIR)/buildbms.c
	cc -o $(BINDIR)/buildbms ${CFLAGS} ${OPTON} $(SRCDIR)/buildbms.c
$(BINDIR)/dbmserv: $(SRCDIR)/dbmserv.c
	cc -o $(BINDIR)/dbmserv ${CFLAGS} ${OPTON} $(SRCDIR)/dbmserv.c
$(BINDIR)/dbmscli: $(SRCDIR)/dbmscli.c
	cc -o $(BINDIR)/dbmscli ${CFLAGS} ${OPTON} $(SRCDIR)/dbmscli.c
$(BINDIR)/autokb: $(SRCDIR)/autokb.c
	cc -o $(BINDIR)/autokb ${CFLAGS} ${OPTON} $(SRCDIR)/autokb.c
# Housekeeping
stuff: tmp
	chmod 744 * src/* pgms/* testdir/*
tmp:
	mkdir tmp

# SCCS stuff
delta:
	delta -y"development step" sccs/s.Run sccs/s.README
	cd src; delta -y"development step" sccs
	cd pgms; delta -y"development step" sccs
	cd testdir; delta -y"development step" sccs
get:
	get -e sccs/s.Run sccs/s.README
	cd src; get -e sccs
	cd pgms; get -e sccs
	cd testdir; get -e sccs
	chmod 744 $(SOURCES) $(DATAFILES)
	chmod 755 $(SCRIPTS) *
rel:
	cd bench; get ../sccs
	cd bench/src; get ../../src/sccs
	cd bench/pgms; get ../../pgms/sccs
	cd bench/testdir; get ../../testdir/sccs
	cd bench; chmod 744 src/* testdir/*
	cd bench; chmod 755 * pgms/*
clean:
	rm $(PROGS)
	rm -f testdir/a.out testdir/db.dat
	rm -f src/*.o
