#
# $Id: Makefile,v 1.4 1998/03/30 01:08:14 descarte Exp descarte $
#
# Makefile
#
# Makefile for building the Magician Java Atlantis demo.
#
# $Log: Makefile,v $
# Revision 1.4  1998/03/30 01:08:14  descarte
# Added some verbosity to ``classcopy'' target.
#
# Revision 1.3  1998/03/10 16:07:53  descarte
# Tidied up ``clean'' target.
#
# Revision 1.2  1998/01/04 17:34:44  descarte
# Reversed order of objects and regeneratable objects as the old atlantis.java
# file was being compiled against instead of regenerating a new one and
# compiling against that.
#
# Revision 1.1  1998/01/02 18:05:59  descarte
# Initial revision
#
#

CLASSES_TOP=../../../../../../../classes
APPLETS_TOP=../../../../../../../applets
SOURCE_TOP=../../../../../
PACKAGE=com/hermetica/magician/demos/atlantis
JAVAC=javac -d $(CLASSES_TOP) -classpath $(CLASSPATH):$(CLASSES_TOP):$(SOURCE_TOP)
AJAVAC=javac -d $(APPLETS_TOP) -classpath $(CLASSPATH):$(CLASSES_TOP):$(SOURCE_TOP)
GENERATOR=../bin/generateDemo

JSRCS=fish.java \
      shark.java \
      whale.java \
      dolphin.java \
      sharkFrame.java \
      whaleFrame.java
JSTUBSRCS=atlantis.java.stub
JOBJS=$(addprefix $(CLASSES_TOP)/$(PACKAGE)/, $(JSRCS:.java=.class) )
JSTUBOBJS=$(addprefix $(CLASSES_TOP)/$(PACKAGE)/, $(JSTUBSRCS:.java.stub=.class) )

.SUFFIXES: .java
.SUFFIXES: .class

all: $(JSTUBOBJS) $(JOBJS) classcopy

$(JOBJS): $(CLASSES_TOP)/$(PACKAGE)/%.class: $(CLASSES_TOP) %.java
	$(JAVAC) $*.java

$(JSTUBOBJS): $(CLASSES_TOP)/$(PACKAGE)/%.class: $(CLASSES_TOP) $(APPLETS_TOP) %.java.stub
	$(GENERATOR) app $*.java.stub
	$(JAVAC) $*.java
	$(GENERATOR) applet $*.java.stub
	$(AJAVAC) $*app.java

classcopy:
	@( for i in $(JSRCS:.java=.class); do\
	( echo "Copying class $$i to $(APPLETS_TOP)/$(PACKAGE)/$$i" ; cp $(CLASSES_TOP)/$(PACKAGE)/$$i $(APPLETS_TOP)/$(PACKAGE)/$$i )\
	done )

$(CLASSES_TOP):
	@echo "Creating directory for class files"
	@mkdir $(CLASSES_TOP)

$(APPLETS_TOP):
	@echo "Creating directory for applet class files"
	@mkdir $(APPLETS_TOP)

clean:
	@( for i in $(JOBJS) $(JSTUBOBJS); do \
	( echo "Cleaning $$i" ; rm -f $$i )\
	done )
