CFLAGS = -gx -O $(FLAGS) 

EXTERNALOBJS =  

CFILES = \
	latency.c \
	dissemination.c \
	synchtest.c \
	read_pref_tas.c \
	fair_tas.c \
	read_pref_queue.c \
	fair_queue.c \
	write_pref_queue.c


HFILES = \
	read_pref_queue.h \
	read_pref_tas.h \
	fair_tas.h \
	fair_queue.h \
	write_pref_queue.h

OBJS = \
	dissemination.o \
	read_pref_queue.o \
	read_pref_tas.o \
	fair_tas.o \
	fair_queue.o \
	write_pref_queue.o

all: latency-wpq latency-rpt latency-ft latency-rpq latency-fq \
	synchtest-wpq synchtest-rpt synchtest-ft synchtest-rpq synchtest-fq

latency-rpq: $(OBJS) $(EXTERNALOBJS) latency.c
	@rm -f latency.o latency
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=RPQ" latency 
	mv -f latency latency-rpq

latency-rpt: $(OBJS) $(EXTERNALOBJS) latency.c
	@rm -f latency.o latency
	@make "FLAGS= -DREMOTE -DLTYPE=RPT" latency 
	mv -f latency latency-rpt

latency-ft: $(OBJS) $(EXTERNALOBJS) latency.c
	@rm -f latency.o latency
	@make "FLAGS= -DREMOTE -DLTYPE=FT" latency 
	mv -f latency latency-ft

latency-fq: $(OBJS) $(EXTERNALOBJS) latency.c
	@rm -f latency.o latency
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=FQ" latency 
	mv -f latency latency-fq

latency-wpq: $(OBJS) $(EXTERNALOBJS) latency.c
	@rm -f latency.o latency
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=WPQ" latency 
	mv -f latency latency-wpq

synchtest-rpq: $(OBJS) $(EXTERNALOBJS) synchtest.c
	@rm -f synchtest.o synchtest
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=RPQ" synchtest 
	mv -f synchtest synchtest-rpq

synchtest-rpt: $(OBJS) $(EXTERNALOBJS) synchtest.c
	@rm -f synchtest.o synchtest
	@make "FLAGS= -DREMOTE -DLTYPE=RPT" synchtest 
	mv -f synchtest synchtest-rpt

synchtest-ft: $(OBJS) $(EXTERNALOBJS) synchtest.c
	@rm -f synchtest.o synchtest
	@make "FLAGS= -DREMOTE -DLTYPE=FT" synchtest 
	mv -f synchtest synchtest-ft

synchtest-fq: $(OBJS) $(EXTERNALOBJS) synchtest.c
	@rm -f synchtest.o synchtest
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=FQ" synchtest 
	mv -f synchtest synchtest-fq

synchtest-wpq: $(OBJS) $(EXTERNALOBJS) synchtest.c
	@rm -f synchtest.o synchtest
	@make "FLAGS= -DREMOTE -DQUEUE -DLTYPE=WPQ" synchtest 
	mv -f synchtest synchtest-wpq

synchtest: $(OBJS) $(EXTERNALOBJS) synchtest.o
	cc $(OBJS) $(EXTERNALOBJS) synchtest.o -o synchtest -lus

latency: $(OBJS) $(EXTERNALOBJS) latency.o
	cc $(OBJS) $(EXTERNALOBJS) latency.o -o latency -lus

sources:
	echo $(CFILES) $(HFILES)

clean:
	/bin/rm -f $(OBJS) 

externalclean: 
	x=`pwd`; \
	for i in $(EXTERNALOBJS) ; do \
		cd `dirname $$i`; make veryclean; cd $$x; \
	done

veryclean: clean externalclean
	for i in `make sources` ; do \
		if test -s $$i -a ! -h $$i; then \
			if test `rcsdiff -q $$i | wc -c | cat` -eq 0; then \
				/bin/rm -f $$i ; \
			else \
				echo $$i differs from checked in copy: cleanup aborted; \
			fi; \
		fi; \
	done

dissemination.o: dissemination.c

#$(EXTERNALOBJS) :
#	cd `dirname $@`; make `basename $@`;

.SUFFIXES: .s .c

.c.s:
	cc -S $(CFLAGS) $*.c
