.SUFFIXES: .p.java .java .class

JAVAPREP=cpp -x c
PREPFLAGS=-C -P
JAVACFLAGS=

SOURCES=\
AbstractProtocolFactory.java\
Application.java\
CentralProtocolFactory.java\
Context.java\
LClockProtocolFactory.java\
MClockProtocolFactory.java\
Main.java\
Message.java\
ProtocolFactoryIntf.java\
ProtocolIntf.java\
SimpleProtocol.java\
SimpleProtocolFactory.java\
Transport.java \
CentralProtocol.java\
LClockProtocol.java\
MClockProtocol.java

CLASSES=$(SOURCES:.java=.class)

%.java: %.p.java
	$(JAVAPREP) $(PREPFLAGS) $< $@

%.class: %.java
	javac $(JAVACFLAGS) $<

all: $(CLASSES) index.html

$(CLASSES): $(SOURCES)

student:
	make

teacher:
	make PREPFLAGS="$(PREPFLAGS) -DTEACHER=true"

index.html: index.texi
	makeinfo --no-headers --html --ifinfo --no-split --css-include=style.css $< > $@

clean:
	-rm *~ *.class

force:
	cvs update -l *.texi
	sleep 1
	cvs update -l

src.tar.zip:
	tar cf src.tar $(SOURCES) nodes Makefile
	gzip -f src.tar

install: force veryclean
	make student
	tar cf src.tar $(SOURCES) nodes Makefile
	gzip -f src.tar
	chmod g=u * Makefile
	chmod o-rwx *
	chmod o=u-w $(SOURCES) index.html style.css src.tar.gz

veryclean: clean
	-rm $(SOURCES)
