#  Makefile for the porteus disk module
#
#  By:            Song Bac Toh
#                   Rewritten by Yiming Hu, University of Rhode Island
#                   Some changes are for Solaris only  
#  Last Modified: Aug. 15, 1996
#
#  $Id: Makefile,v 2.0 94/07/17 18:35:22 dfk Exp $
##############################################################################

# For Solaris make. If it doesn't work with your make, just comment it.
# It forces recompiling when we change the options 
.KEEP_STATE:

# Redefine the implicit rules.
#
# We want generate two librarys from the same set of sources: one is with 
# the immediate mode and one without. 
#
# The following new rule says that for each .c file, two object files are
# generated. One is a "normal" immediate report mode object with the same
# basename of the source; Another one is a "no immediate report mode" object
# which has a prefix of "ni_" on its file name 
# 
#.SUFFIXES:
#.SUFFIXES: .c .o
#.c.o:
#	$(CC) -c $(CFLAGS) -DIMMEDIATE_REPORT	$< -o $@
#	$(CC) -c $(CFLAGS)			$< -o ni_$@

ni_%.o: %.c
	$(CC) -c $(CFLAGS)                      $< -o $@
%.o: %.c
	$(CC) -c $(CFLAGS) -DIMMEDIATE_REPORT   $< -o $@

DESTDIR = ../lib		# where to put the generated libs

CC	= gcc			# compiler
#CC	= cc			# compiler
//OPT	= -g 			# compile options (optimization, etc)
OPT	= -O 			# compile options (optimization, etc)
LIBS	=                  	# libraries to be linked in
#DEBUG	= -DDEBUG 		# whether to print the debugging traces

DEF 	= -DLONG_LONG_TIME 
#DEF 	= -DLONG_LONG_TIME #-DREAL_DATA
# you can turn off REAL_DATA

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


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

PARAMS	   = diskmodel.param
HEADERS    = diskdevice.h diskdevices.h diskevent.h heap.h modularize.h queue.h 

OBJECTS    = diskdevice.o diskevent.o heap.o modularize.o queue.o 
NI_OBJECTS = ni_diskdevice.o ni_diskevent.o ni_heap.o ni_modularize.o ni_queue.o 

SOURCE     = diskdevice-model.c    diskdevice.c  heap.c         queue.c \
             diskdevice-trivial.c  diskevent.c   modularize.c           \
	     diskdevice.h          diskdevices.h diskevent.h    heap.h  \
             modularize.h          queue.h \
	     diskmodel.param
##############################################################################

all:    install            # make everything

install: libdiskdevice.a libdiskdevice_ni.a
#	cp libdiskdevice.a    $(DESTDIR)
#	cp libdiskdevice_ni.a $(DESTDIR)
	cp $? $(DESTDIR)
	touch install

libdiskdevice.a:  $(OBJECTS)
	ar  -r    $@ $(OBJECTS) 
#	ar  -r    $@ $? 
#	ld  -r -o $@ $? 


libdiskdevice_ni.a: $(NI_OBJECTS) 
	ar  -r    $@ $(NI_OBJECTS) 
#	ld  -r -o $@ $? 


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

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

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



##############################################################################
# Note: Do NOT delete the next line or put anthing below the next line
# MAKEDEPEND boundary

diskdevice-model.o: modularize.h /usr/include/stdio.h
diskdevice-model.o: /usr/include/sys/feature_tests.h /usr/include/math.h
diskdevice-model.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
diskdevice-model.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
diskdevice-model.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
diskdevice-model.o: /usr/include/sys/time.h /usr/include/time.h
diskdevice-model.o: /usr/include/sys/stat.h /usr/include/sys/file.h
diskdevice-model.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
diskdevice-model.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
diskdevice-model.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
diskdevice-model.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
diskdevice-model.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
diskdevice-model.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
diskdevice-model.o: /usr/include/sys/condvar.h /usr/include/malloc.h
diskdevice-model.o: /usr/include/unistd.h /usr/include/stdlib.h diskevent.h
diskdevice-model.o: diskdevice.h heap.h queue.h diskdevices.h
diskdevice.o: diskmodel.param diskdevice-model.c modularize.h
diskdevice.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
diskdevice.o: /usr/include/math.h /usr/include/floatingpoint.h
diskdevice.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
diskdevice.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
diskdevice.o: /usr/include/sys/select.h /usr/include/sys/time.h
diskdevice.o: /usr/include/time.h /usr/include/sys/stat.h
diskdevice.o: /usr/include/sys/file.h /usr/include/sys/t_lock.h
diskdevice.o: /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h
diskdevice.o: /usr/include/sys/dl.h /usr/include/sys/sleepq.h
diskdevice.o: /usr/include/sys/turnstile.h /usr/include/sys/param.h
diskdevice.o: /usr/include/sys/unistd.h /usr/include/sys/pirec.h
diskdevice.o: /usr/include/sys/mutex.h /usr/include/sys/rwlock.h
diskdevice.o: /usr/include/sys/semaphore.h /usr/include/sys/condvar.h
diskdevice.o: /usr/include/malloc.h /usr/include/unistd.h
diskdevice.o: /usr/include/stdlib.h diskevent.h diskdevice.h heap.h queue.h
diskdevice.o: diskdevices.h
heap.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h heap.h
heap.o: modularize.h /usr/include/math.h /usr/include/floatingpoint.h
heap.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
heap.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
heap.o: /usr/include/sys/select.h /usr/include/sys/time.h /usr/include/time.h
heap.o: /usr/include/sys/stat.h /usr/include/sys/file.h
heap.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
heap.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
heap.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
heap.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
heap.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
heap.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
heap.o: /usr/include/sys/condvar.h /usr/include/malloc.h
heap.o: /usr/include/unistd.h /usr/include/stdlib.h diskevent.h
queue.o: modularize.h /usr/include/stdio.h /usr/include/sys/feature_tests.h
queue.o: /usr/include/math.h /usr/include/floatingpoint.h
queue.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
queue.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
queue.o: /usr/include/sys/select.h /usr/include/sys/time.h
queue.o: /usr/include/time.h /usr/include/sys/stat.h /usr/include/sys/file.h
queue.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
queue.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
queue.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
queue.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
queue.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
queue.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
queue.o: /usr/include/sys/condvar.h /usr/include/malloc.h
queue.o: /usr/include/unistd.h /usr/include/stdlib.h queue.h
diskdevice-trivial.o: modularize.h /usr/include/stdio.h
diskdevice-trivial.o: /usr/include/sys/feature_tests.h /usr/include/math.h
diskdevice-trivial.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
diskdevice-trivial.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
diskdevice-trivial.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
diskdevice-trivial.o: /usr/include/sys/time.h /usr/include/time.h
diskdevice-trivial.o: /usr/include/sys/stat.h /usr/include/sys/file.h
diskdevice-trivial.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
diskdevice-trivial.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
diskdevice-trivial.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
diskdevice-trivial.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
diskdevice-trivial.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
diskdevice-trivial.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
diskdevice-trivial.o: /usr/include/sys/condvar.h /usr/include/malloc.h
diskdevice-trivial.o: /usr/include/unistd.h /usr/include/stdlib.h diskevent.h
diskdevice-trivial.o: diskdevice.h heap.h queue.h diskdevices.h
diskevent.o: modularize.h /usr/include/stdio.h
diskevent.o: /usr/include/sys/feature_tests.h /usr/include/math.h
diskevent.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
diskevent.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
diskevent.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
diskevent.o: /usr/include/sys/time.h /usr/include/time.h
diskevent.o: /usr/include/sys/stat.h /usr/include/sys/file.h
diskevent.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
diskevent.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
diskevent.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
diskevent.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
diskevent.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
diskevent.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
diskevent.o: /usr/include/sys/condvar.h /usr/include/malloc.h
diskevent.o: /usr/include/unistd.h /usr/include/stdlib.h heap.h diskevent.h
modularize.o: modularize.h /usr/include/stdio.h
modularize.o: /usr/include/sys/feature_tests.h /usr/include/math.h
modularize.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
modularize.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
modularize.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
modularize.o: /usr/include/sys/time.h /usr/include/time.h
modularize.o: /usr/include/sys/stat.h /usr/include/sys/file.h
modularize.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
modularize.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
modularize.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
modularize.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
modularize.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
modularize.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
modularize.o: /usr/include/sys/condvar.h /usr/include/malloc.h
modularize.o: /usr/include/unistd.h /usr/include/stdlib.h heap.h diskevent.h
diskdevice.o: modularize.h /usr/include/stdio.h
diskdevice.o: /usr/include/sys/feature_tests.h /usr/include/math.h
diskdevice.o: /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h
diskdevice.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
diskdevice.o: /usr/include/sys/machtypes.h /usr/include/sys/select.h
diskdevice.o: /usr/include/sys/time.h /usr/include/time.h
diskdevice.o: /usr/include/sys/stat.h /usr/include/sys/file.h
diskdevice.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
diskdevice.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
diskdevice.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
diskdevice.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
diskdevice.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
diskdevice.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
diskdevice.o: /usr/include/sys/condvar.h /usr/include/malloc.h
diskdevice.o: /usr/include/unistd.h /usr/include/stdlib.h heap.h diskevent.h
diskdevice.o: queue.h
diskevent.o: /usr/include/time.h /usr/include/sys/feature_tests.h
heap.o: modularize.h /usr/include/stdio.h /usr/include/sys/feature_tests.h
heap.o: /usr/include/math.h /usr/include/floatingpoint.h
heap.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
heap.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
heap.o: /usr/include/sys/select.h /usr/include/sys/time.h /usr/include/time.h
heap.o: /usr/include/sys/stat.h /usr/include/sys/file.h
heap.o: /usr/include/sys/t_lock.h /usr/include/sys/machlock.h
heap.o: /usr/include/sys/dki_lkinfo.h /usr/include/sys/dl.h
heap.o: /usr/include/sys/sleepq.h /usr/include/sys/turnstile.h
heap.o: /usr/include/sys/param.h /usr/include/sys/unistd.h
heap.o: /usr/include/sys/pirec.h /usr/include/sys/mutex.h
heap.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h
heap.o: /usr/include/sys/condvar.h /usr/include/malloc.h
heap.o: /usr/include/unistd.h /usr/include/stdlib.h diskevent.h
modularize.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
modularize.o: /usr/include/math.h /usr/include/floatingpoint.h
modularize.o: /usr/include/sys/ieeefp.h /usr/include/sys/types.h
modularize.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
modularize.o: /usr/include/sys/select.h /usr/include/sys/time.h
modularize.o: /usr/include/time.h /usr/include/sys/stat.h
modularize.o: /usr/include/sys/file.h /usr/include/sys/t_lock.h
modularize.o: /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h
modularize.o: /usr/include/sys/dl.h /usr/include/sys/sleepq.h
modularize.o: /usr/include/sys/turnstile.h /usr/include/sys/param.h
modularize.o: /usr/include/sys/unistd.h /usr/include/sys/pirec.h
modularize.o: /usr/include/sys/mutex.h /usr/include/sys/rwlock.h
modularize.o: /usr/include/sys/semaphore.h /usr/include/sys/condvar.h
modularize.o: /usr/include/malloc.h /usr/include/unistd.h
modularize.o: /usr/include/stdlib.h
