#  Makefile for the DCD Simulator
#
#  By:            Yiming Hu
#  Last Modified: Aug 13, 1996
#
##############################################################################

# The following is for Solaris make. If it doesn't work with your make,
# just comment it out.  It forces recompiling when the options are changed
.KEEP_STATE:


INCDIR  = ../include
LIBDIR  = ../lib 
DESTDIR = ../bin

CC      = g++				# compiler
#CC      = CC				# compiler
OPT     = -O2				# compile options

INCS    = -I$(INCDIR) 
LIBS    = -L$(LIBDIR) -ldiskdevice      # link "immediate report" lib
LIBS_NI = -L$(LIBDIR) -ldiskdevice_ni   # link "no immediate report" lib

DEF     = -DLONG_LONG_TIME 
#DEBUG   = -DLONG_LONG_TIME -DDEBUG -DDEBUGLOG 		# whether to print the debugging traces

CFLAGS  = $(OPT) $(DEF) $(DEBUG) $(INCS)

.C.o:
	$(CC) -c $(CFLAGS)    $< -o $@


##############################################################################

HEADERS = tracedata.H diskmodel.H general.H diskqueue.H 

COMOBJS = diskmodel.o tracedata.o diskqueue.o 

DCDOBJS = main_DCD.o DCD.o LogDisk.o $(COMOBJS) 

SOURCE = diskmodel.C test1disk.C test2disk.C  tracedata.C diskqueue.C 


##############################################################################

#Conditional Macros (Solaris Make). If it doesn't work on your system,
#comment the following line.
#debug := DEBUG   = -DDEBUG -DDEBUGLOG           # whether to print the debugging traces


all:    install  # make everything

install: test1disk test2disk
	 mv test1disk    $(DESTDIR)
	 mv test2disk    $(DESTDIR)
	 touch install


test1disk: test1disk.o $(COMOBJS) $(HEADERS) $(LIBDIR)/libdiskdevice.a
	$(CC) test1disk.o  $(COMOBJS) $(CFLAGS) $(LIBS) -o test1disk

test2disk: test2disk.o $(COMOBJS) $(HEADERS) $(LIBDIR)/libdiskdevice.a
	$(CC) test2disk.o  $(COMOBJS) $(CFLAGS) $(LIBS) -o test2disk


##############################################################################

depend:
	makedepend $(CFLAGS) -s '# MAKEDEPEND boundary' $(SOURCE)

# do `make clean' if you only change the DBUG flags
clean:	
	rm -f *.a *.o *~ core DCD DCD_NI testdisk CachedDisk install

# do `cleanall' if you want to clean all the object files
veryclean: cleanall
spotless: cleanall
cleanall: clean
	rm -f test1 vdisk

##############################################################################

# MAKEDEPEND boundary

diskmodel.o: /usr/include/math.h /usr/include/floatingpoint.h
diskmodel.o: /usr/include/sys/ieeefp.h /usr/include/string.h
diskmodel.o: /usr/include/sys/feature_tests.h /usr/include/stdlib.h
diskmodel.o: diskmodel.H /usr/include/stdio.h general.H
diskmodel.o: ../include/modularize.h /usr/include/sys/types.h
diskmodel.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
diskmodel.o: /usr/include/sys/select.h /usr/include/sys/time.h
diskmodel.o: /usr/include/time.h /usr/include/sys/stat.h
diskmodel.o: /usr/include/sys/file.h /usr/include/sys/t_lock.h
diskmodel.o: /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h
diskmodel.o: /usr/include/sys/dl.h /usr/include/sys/sleepq.h
diskmodel.o: /usr/include/sys/turnstile.h /usr/include/sys/param.h
diskmodel.o: /usr/include/sys/unistd.h /usr/include/sys/pirec.h
diskmodel.o: /usr/include/sys/mutex.h /usr/include/sys/rwlock.h
diskmodel.o: /usr/include/sys/semaphore.h /usr/include/sys/condvar.h
diskmodel.o: /usr/include/malloc.h /usr/include/unistd.h diskqueue.H
diskmodel.o: ../include/queue.h ../include/heap.h ../include/diskevent.h
diskmodel.o: ../include/diskdevice.h
test1disk.o: /usr/include/string.h /usr/include/sys/feature_tests.h
test1disk.o: diskmodel.H /usr/include/stdio.h general.H /usr/include/stdlib.h
test1disk.o: ../include/modularize.h /usr/include/math.h
test1disk.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
test1disk.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
test1disk.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
test1disk.o: /usr/include/sys/time.h /usr/include/time.h
test1disk.o: /usr/include/sys/stat.h /usr/include/sys/file.h
test1disk.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
test1disk.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
test1disk.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
test1disk.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
test1disk.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
test1disk.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
test1disk.o: /usr/include/sys/condvar.h /usr/include/malloc.h
test1disk.o: /usr/include/unistd.h diskqueue.H ../include/queue.h
test1disk.o: ../include/heap.h ../include/diskevent.h ../include/diskdevice.h
test1disk.o: tracedata.H
test2disk.o: diskmodel.H /usr/include/stdio.h
test2disk.o: /usr/include/sys/feature_tests.h /usr/include/string.h general.H
test2disk.o: /usr/include/stdlib.h ../include/modularize.h
test2disk.o: /usr/include/math.h /usr/include/floatingpoint.h
test2disk.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
test2disk.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
test2disk.o: /usr/include/sys/select.h /usr/include/sys/time.h
test2disk.o: /usr/include/time.h /usr/include/sys/stat.h
test2disk.o: /usr/include/sys/file.h /usr/include/sys/t_lock.h
test2disk.o: /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h
test2disk.o: /usr/include/sys/dl.h /usr/include/sys/sleepq.h
test2disk.o: /usr/include/sys/turnstile.h /usr/include/sys/param.h
test2disk.o: /usr/include/sys/unistd.h /usr/include/sys/pirec.h
test2disk.o: /usr/include/sys/mutex.h /usr/include/sys/rwlock.h
test2disk.o: /usr/include/sys/semaphore.h /usr/include/sys/condvar.h
test2disk.o: /usr/include/malloc.h /usr/include/unistd.h diskqueue.H
test2disk.o: ../include/queue.h ../include/heap.h ../include/diskevent.h
test2disk.o: ../include/diskdevice.h tracedata.H
tracedata.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
tracedata.o: /usr/include/stdlib.h /usr/include/ctype.h general.H
tracedata.o: ../include/modularize.h /usr/include/math.h
tracedata.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
tracedata.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
tracedata.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
tracedata.o: /usr/include/sys/time.h /usr/include/time.h
tracedata.o: /usr/include/sys/stat.h /usr/include/sys/file.h
tracedata.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
tracedata.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
tracedata.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
tracedata.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
tracedata.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
tracedata.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
tracedata.o: /usr/include/sys/condvar.h /usr/include/malloc.h
tracedata.o: /usr/include/unistd.h tracedata.H
diskqueue.o: /usr/include/stdlib.h /usr/include/sys/feature_tests.h
diskqueue.o: diskqueue.H general.H ../include/modularize.h
diskqueue.o: /usr/include/stdio.h /usr/include/math.h
diskqueue.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
diskqueue.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
diskqueue.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
diskqueue.o: /usr/include/sys/time.h /usr/include/time.h
diskqueue.o: /usr/include/sys/stat.h /usr/include/sys/file.h
diskqueue.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
diskqueue.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
diskqueue.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
diskqueue.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
diskqueue.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
diskqueue.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
diskqueue.o: /usr/include/sys/condvar.h /usr/include/malloc.h
diskqueue.o: /usr/include/unistd.h
