
# Your Java compiler
JAVAC = javac

# Compile flags
JFLAGS = -g -deprecation

# Where your Jini distribution was unpacked
JINI_HOME = /usr/local/jini1_1

# Where your HTTP server delivers its web pages from
HTML_HOME = /home/httpd/html

# The subdirectory that is used as codebase in HTML_HOME
CODEBASE = classes


##########################################
# No changes should be needed below here #
##########################################

CLASSPATH = .:../doc:$(JINI_HOME)/lib/reggie.jar:$(JINI_HOME)/lib/jini-core.jar:$(JINI_HOME)/lib/jini-ext.jar:$(JINI_HOME)/lib/sun-util.jar:$(RCX_PKG)

%.class: %.java
	$(JAVAC) $(JFLAGS) -classpath $(CLASSPATH)  $<


RMIC_ARGS = -v1.2 -d . -classpath $(CLASSPATH):/usr/local/src/jdk1.2.2/jre/lib/rt.jar

CLASSES = \
	common/InventoryItem.class \
	common/InventoryItemContainer.class \
	cokeServer/RemoteInventoryItemContainer.class \
	cokeServer/CokeCan.class \
	cokeServer/CokeMachine.class \
	cokeServer/CokeMachineServer.class \
	client/ContainerListener.class \
	client/InventoryClient.class

# These classes need to be known to the HTTP server
# for copying across to clients
HTML_CLASSES = \

# These classes need to have rmic run on them as they
# are exported to RMI
STUBS = cokeServer/CokeMachine_Stub.class \
	client/ContainerListener_Stub.class

DOCS = 
TESTS =

all: $(CLASSES) $(DOCS)
	make classes

docs: $(DOCS)

classes: $(CLASSES) $(HTML_CLASSES) $(CLIENT_CLASSES) $(STUBS)

programs.zip:
	zip programs.zip Makefile `find . -name "*.java" -print`

classes.zip:
	make classes
	zip classes.zip Makefile `find . -name "*.class" -print`


#
# Stub relations
#
cokeServer/CokeMachine_Stub.class : cokeServer/CokeMachine.class
	rmic $(RMIC_ARGS) cokeServer.CokeMachine
	cp -P cokeServer/CokeMachine_Stub.class $(HTML_HOME)/$(CODEBASE)

client/ContainerListener_Stub.class : client/ContainerListener.class
	rmic $(RMIC_ARGS) client.ContainerListener
	cp -P client/ContainerListener_Stub.class $(HTML_HOME)/$(CODEBASE)

#
# dependencies
#

common/InventoryItemContainer.class :: \
	common/InventoryItem.class

cokeServer/RemoteInventoryItemContainer.class :: \
	common/InventoryItemContainer.class

cokeServer/CokeMachine.class :: \
	cokeServer/RemoteInventoryItemContainer.class

cokeServer/CokeMachineServer.class :: \
	cokeServer/CokeMachine.class

client/InventoryClient.class :: \
	common/InventoryItemContainer.class \
	client/ContainerListener.class

client/ContainerListener.class :: \
	common/InventoryItemContainer.class


#
# clean
#

clean:
	rm -rf `find . -name "*.class" -print` *~ */*~ *.zip core


#
# distrib
#

distrib:
	(cd ..; zip -r sap.zip sap)
