# -*- makefile -*- mode for emacs
# @(#) $Id: Makefile,v 1.1 1999/08/24 04:37:57 leavens Exp $

JAVAC = javac
JAVAFLAGS = -g
CPP = g++

JML = jml

RM = rm -f

.SUFFIXES: .java  .java-ckd .java-refined .java-r-ckd .class \
		.jml .jml-ckd .jml-refined .jml-r-ckd .cpp .o

.cpp.o:
	$(CPP) -c $(CPPFLAGS) $<

.java.java-ckd:
	$(JML) $(JMLFLAGS) $< 2>&1 | tee $@

.java-refined.java-r-ckd:
	$(JML) $(JMLFLAGS) $< 2>&1 | tee $@

.java.class:
	$(JAVAC) $(JAVAFLAGS) $<

.jml.jml-ckd:
	$(JML) $(JMLFLAGS) $< 2>&1 | tee $@

.jml-refined.jml-r-ckd:
	$(JML) $(JMLFLAGS) $< 2>&1 | tee $@

all: compile

compile :
	$(JAVAC) $(JAVAFLAGS) *.java

Rat.o: Rat.h
ratrep.o: ratrep.h
ratrep2.o: ratrep2.h
RatTest.o: ratrep.h ratrep2.h Rat.h

RatTest: Rat.o ratrep.o RatTest.o ratrep2.o
	$(CPP) -o RatTest Rat.o ratrep.o ratrep2.o RatTest.o

check: checkallspecs compile

# check all JML specs.
checkallspecs :
	$(JML) $(JMLFLAGS) .

# Clean up stuff
#
clean	:
	$(RM) *.*-ckd *.class core
	$(RM) *.o

cleanall: clean
	$(RM) RatTest.exe RatTest
