OJC = ojc
JAVAC = javac
#JAVAC = jikes
RMIC = java -cp /usr/local/exts/jp-karmi-1.05b/jar/jpc.jar:/usr/local/exts/jp-karmi-1.05b/jar/jp.jar:/usr/local/exts/jp-karmi-1.05b/jar/karmi.jar:/usr/java/jdk1.3.1/jre/lib/rt.jar gjc.v6.KaRMIc

javacode = $(exceptions) $(methodcalls) $(interfaces) $(multichannels)
exceptions = SenderStubCannotBeRegisteredAsAServerException.java CoreNotFoundException.java FieldDoesNotExistException.java \
             MethodDoesNotExistException.java StubNotFoundException.java SenderStubNotFoundException.java \
             ReceiverStubNotFoundException.java ReceiverStubCannotBeRegisteredAsAServerException.java ReferenceToNonExistentArgumentException.java
interfaces = stubInterface.java channelInterface.java reflectiveReceiverInterface.java receiverStubInterface.java senderStubInterface.java
multichannels = $(cores) $(stubs)
stubs = stub.java $(clientstubs) $(serverstubs)
clientstubs = senderStub.java
serverstubs = receiverStub.java
cores = channelCore.java
methodcalls = mChaRMArgs.java mChaRMMethodCall.java 

stubsclass = stubInterface.class stub.class $(clientstubsclass) $(serverstubsclass)
clientstubsclass = senderStubInterface.class senderStub.class
serverstubsclass = receiverStubInterface.class receiverStub.class
coresclass = channelInterface.class channelCore.class
methodcallsclass = mChaRMArgs.class mChaRMMethodCall.class
exceptionsclass = SenderStubCannotBeRegisteredAsAServerException.class CoreNotFoundException.class FieldDoesNotExistException.class \
                  MethodDoesNotExistException.class StubNotFoundException.class SenderStubNotFoundException.class \
                  ReceiverStubNotFoundException.class ReceiverStubCannotBeRegisteredAsAServerException.class ReferenceToNonExistentArgumentException.class

all: package

package: $(exceptionsclass) $(methodcallsclass) $(stubclass) $(coresclass) stubskel.class

stubskel.class: stub.class $(stubsclass) $(coresclass)
	cd ../../; $(RMIC) mChaRM.multichannel.stub mChaRM.multichannel.senderStub mChaRM.multichannel.channelCore mChaRM.multichannel.receiverStub
        
%.class: $(javacode)
	$(JAVAC) $?

clean:
	rm -f *.class channelCore_KSkel.java channelCore_KStub.java receiverStub_KSkel.java receiverStub_KStub.java senderStub_KSkel.java senderStub_KStub.java
	
build: clean all
