##############################################################################
#  The BYTE UNIX Benchmarks - Release 2
#          Module: Makefile   SID: 2.10 4/17/90 16:45:28
#          
##############################################################################
# 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
#                    4/17/90 added routines for installing from shar mess
#
##############################################################################
ID="@(#)Makefile:2.10 -- 4/17/90 16:45:28";
SHELL = /bin/sh
UNIX = -DSysV     #may be: SysV, BSD4v1, BSD4v2
CFLAGS = $(UNIX) -DHZ=50
OPTON = -O        #optimization on (give it your best shot) 
                  #            -- check your compiler man
OPTOFF = -Od      #optimization off -- check your compiler man
# local directories
BINDIR = ./pgms
SRCDIR = ./src
DOCDIR = ./doc
TESTDIR = ./testdir
RESULTDIR = ./resultdir
TMPDIR = ./tmpdir
# other directories
INCLDIR = /usr/include
LIBDIR = /lib
SCRIPTS = BSDtime.awk SysVtime.awk byte.logo \
	cleanup dbprep dhry.awk \
	fs.awk multi.sh \
	time.awk tst.sh
SOURCES = arith.c big.c buildbms.c \
	clock.c context1.c \
	dbmscli.c dbmserv.c dhry.c \
	dhry.h dummy.c execl.c \
	fstime.c getopt.c hanoi.c \
	limit.c mkperm.c \
	pipe.c precision.c spawn.c \
	syscall.c 
DOCS = bench.doc
TESTS = sort.src cctest.c 
PROGS = $(BINDIR)/arithoh $(BINDIR)/register $(BINDIR)/short \
	$(BINDIR)/int $(BINDIR)/long $(BINDIR)/float $(BINDIR)/double \
	$(BINDIR)/hanoi \
	$(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 

# ######################### the big ALL ############################
all: distr programs

# distribute the files out to subdirectories if they are in this one
distr: 
	# scripts
	if  test ! -d  $(BINDIR) \
        ; then  \
           mkdir $(BINDIR) \
           ; mv $(SCRIPTS) $(BINDIR) \
        ; else \
           echo "$(BINDIR)  exists" \
        ; fi
	# C sources
	if  test ! -d  $(SRCDIR) \
        ; then  \
           mkdir $(SRCDIR) \
           ; mv $(SOURCES) $(SRCDIR) \
        ; else \
           echo "$(SRCDIR)  exists" \
        ; fi
	# test data
	if  test ! -d  $(TESTDIR) \
        ; then  \
           mkdir $(TESTDIR) \
           ; mv $(TESTS) $(TESTDIR) \
        ; else \
           echo "$(TESTDIR)  exists" \
        ; fi
	# documents directory
	if  test ! -d  $(DOCDIR) \
        ; then  \
           mkdir $(DOCDIR) \
	   ; mv $(DOCS) $(DOCDIR) \
        ; else \
           echo "$(DOCDIR)  exists" \
        ; fi
	# temporary work directory
	if  test ! -d  $(TMPDIR) \
        ; then  \
           mkdir $(TMPDIR) \
        ; else \
           echo "$(TMPDIR)  exists" \
        ; fi
	# directory for results
	if  test ! -d  $(RESULTDIR) \
        ; then  \
           mkdir $(RESULTDIR) \
        ; else \
           echo "$(RESULTDIR)  exists" \
        ; fi
	chmod 744 * $(SRCDIR)/* $(BINDIR)/* $(TESTDIR)/* $(DOCDIR)/*

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)/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

# 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
	cd doc; 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
	cd doc; get -e sccs
	chmod 744 $(SRCDIR)/* $(DATAFILES)
	chmod 755 $(BINDIR)/* *
rel:
	#cd bench; find . -type f -print | rm -f
	cd bench; get ../sccs
	cd bench/src; get ../../src/sccs
	cd bench/pgms; get ../../pgms/sccs
	cd bench/testdir; get ../../testdir/sccs
	cd bench/doc; get ../../doc/sccs
	cd bench; chmod 744 src/* testdir/*
	cd bench; chmod 755 * pgms/*

tar48:
	format /dev/rdsk/f05d9t 
	tar cfb /dev/rdsk/f05d9t 20 bench
	tar tf /dev/rdsk/f05d9t 

tar96:
	format /dev/rdsk/f05ht
	tar cfb /dev/rdsk/f05ht 20 bench
	tar tf /dev/rdsk/f05ht

tar135:
	format /dev/rdsk/f13dt
	tar cfb /dev/rdsk/f13dt 20 bench
	tar tf /dev/rdsk/f13dt
