#
# $Id: Makefile,v 1.18 1998/07/09 09:27:36 descarte Exp descarte $
#
# Makefile
#
# Makefile for building the Magician Java demos.
#
# $Log: Makefile,v $
# Revision 1.18  1998/07/09 09:27:36  descarte
# Added tentacle.java.stub
#
# Revision 1.17  1998/04/23 14:41:28  descarte
# Added ``enterprise'' and ``quest'' demos.
#
# Revision 1.16  1998/04/22 08:57:21  descarte
# Added ``molview'' back in.
# Removed standGL demo
#
# Revision 1.15  1998/04/20 16:32:50  descarte
# Added 'molview' subdirectory back in.
#
# Revision 1.14  1998/03/16 21:36:40  descarte
# Added ``hud'' subdirectory.
#
# Revision 1.13  1998/03/10 20:12:21  descarte
# Added -f argument to cp
#
# Revision 1.12  1998/02/22 20:08:07  descarte
# Added glut subdirectory.
#
# Revision 1.11  1997/11/30 23:28:29  descarte
# Added 'molview' subdirectory
#
# Revision 1.10  1997/11/30 13:22:21  descarte
# Added the ``Lorenz Attractor'' demo.
#
# Revision 1.9  1997/11/29 12:37:55  descarte
# Added 'Ideas In Motion' subdir back in.
#
# Revision 1.8  1997/11/10 20:35:19  descarte
# Removed 'demoTemplate' since it's moved into the util3d package.
#
# Revision 1.7  1997/09/11 20:40:25  descarte
# Added 'starglider' demo
#
# Revision 1.6  1997/09/01 01:26:47  descarte
# Added demoDumper.java program.
#
# Revision 1.5  1997/08/24 23:40:14  descarte
# Added demoTemplate stuff for demo bootstrapping. Added demo bootstrapper
# classes as well. Temporarily removed 'ideas' subdirectory until I can be
# bothered finishing the code off.
#
# Revision 1.4  1997/08/17 23:37:05  descarte
# Added 'redbook' directory.
#
# Revision 1.3  1997/08/07 21:27:18  descarte
# Added new 'atlantis' demo directory
#
# Revision 1.2  1997/08/02 17:08:35  descarte
# Added ``mtpaperplane.java'', which is basically the paperplane
# code.
#
# Revision 1.1  1997/06/27 20:20:01  descarte
# Initial revision
#
#

SUBDIRS= atlantis cbzone colEdit glut hud ideas lorenz mesa molview openGL redbook # ssystem gyron starglider lparser stonehenge
CLASSES_TOP=../../../../../../classes
APPLETS_TOP=../../../../../../applets
SOURCE_TOP=../../../../
PACKAGE=com/hermetica/magician/demos
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=bootFrame.java \
      bootOpenGLFrame.java \
      demoDumper.java \
      plane.java \
      texDumper.java \
      texDumperThread.java
JSTUBSRCS=testGL.java.stub \
      mtpaperplane.java.stub \
      multiView.java.stub \
      sharedContext.java.stub \
      solarSystem.java.stub \
      throwShapes.java.stub \
      enterprise.java.stub \
      objViewer.java.stub \
      ColorCube.java.stub \
      tentacle.java.stub
JSWINGSTUBSRCS=
JOBJS=$(addprefix $(CLASSES_TOP)/$(PACKAGE)/, $(JSRCS:.java=.class) )
JSTUBOBJS=$(addprefix $(CLASSES_TOP)/$(PACKAGE)/, $(JSTUBSRCS:.java.stub=.class) )
JSWINGSTUBOBJS=$(addprefix $(CLASSES_TOP)/$(PACKAGE)/, $(JSWINGSTUBSRCS:.java.stub=.class) )

OLDJSRCS=testGrab.java \
         whichGL.java \
         sphere.java \
         imageCopier.java.stub \
         copyComponentListener.java \
         quest.java.stub

.SUFFIXES: .java
.SUFFIXES: .class

all: $(JOBJS) $(JSTUBOBJS) $(JSWINGSTUBOBJS) classcopy subdirs

$(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

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

classcopy:
	@cp -f $(CLASSES_TOP)/$(PACKAGE)/plane.class $(APPLETS_TOP)/$(PACKAGE)/plane.class

$(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 )
	@for i in $(SUBDIRS); do \
	( cd $$i ; gmake clean ) \
	done

subdirs:
	@for i in $(SUBDIRS); do \
	( cd $$i ; gmake ) \
	done

docs:
