
# check these directories to modify

JAVA_VERSION = 1.0.X

PREFIX = /usr/local
LIB_PREFIX = $(PREFIX)/lib
THISDIRPARENT = $(PREFIX)/projects/java-$(JAVA_VERSION)

DESTDIR = $(PREFIX)/classes-$(JAVA_VERSION)

JAUJAVADIR =$(THISDIRPARENT)/jaujavalib

JDKDIR = $(PREFIX)/jdk$(JAVA_VERSION)
CLASSES = $(PREFIX)/classes-$(JAVA_VERSION)

JAVAC = javac -depend -classpath $(CLASSPATH)

JAVACC=javacc
JJDOC=jjdoc
JJTREE=jjtree

# from here - i guess - nothing must be changed ...

CP1 = $(JDKDIR)/lib/classes.zip:$(CLASSES)
CP2 = $(JAUJAVADIR)

CLASSPATH = "$(CP1):$(CP2)"

SOURCEPATH = "$(JAUJAVADIR):$(JDKDIR)/src"

SRC = \
jaujavalib/gfxmisc/EasyTurtle.java \
jaujavalib/tool/StrIdValue.java \
jaujavalib/tool/JauGlobal.java \
jaujavalib/misc/Test.java \
jaujavalib/awt/Assert.java \
jaujavalib/awt/Browser.java \
jaujavalib/awt/BrowserController.java \
jaujavalib/awt/BrowserFolder.java \
jaujavalib/awt/BrowserFolderExpandControl.java \
jaujavalib/awt/BrowserItem.java \
jaujavalib/awt/BrowserNode.java \
jaujavalib/awt/BrowserNodePainter.java \
jaujavalib/awt/BrowserSelectionEvent.java \
jaujavalib/awt/COLLAPSE.java \
jaujavalib/awt/Command.java \
jaujavalib/awt/Context.java \
jaujavalib/awt/DefaultBrowserController.java \
jaujavalib/awt/DefaultBrowserImages.java \
jaujavalib/awt/Expandable.java \
jaujavalib/awt/FolderNode.java \
jaujavalib/awt/HierarchyPainter.java \
jaujavalib/awt/ImageScroller.java \
jaujavalib/awt/MouseController.java \
jaujavalib/awt/Node.java \
jaujavalib/awt/PaintedRectangle.java \
jaujavalib/awt/SHADOW.java \
jaujavalib/awt/Scroller.java \
jaujavalib/awt/ScrollerLayout.java \
jaujavalib/awt/Selectable.java \
jaujavalib/awt/SelectionEvent.java \
jaujavalib/awt/Selector.java \
jaujavalib/awt/SingleSelector.java \
jaujavalib/awt/Util.java \
jaujavalib/awt/VectorNode.java \
jaujavalib/awt/ViewPanel.java \
jaujavalib/infomisc/ImageCanvas.java \
jaujavalib/infomisc/InfoDialog.java \
jaujavalib/infomisc/SetupValue.java \
jaujavalib/infomisc/SetupWindow.java \
jaujavalib/infomisc/SysInfoWin.java \
jaujavalib/netmisc/MailTo.java \
jaujavalib/netmisc/SendMailApplet.java \
jaujavalib/timemisc/SimpleTimer.java \
jaujavalib/componentcfg/JauGroupInfo.java \
jaujavalib/componentcfg/ABrowserNodeOptions.java \
jaujavalib/componentcfg/ABrowser.java \
jaujavalib/componentcfg/ABrowserFolder.java \
jaujavalib/componentcfg/ABrowserItem.java \
jaujavalib/componentcfg/ABrowserNode.java \
jaujavalib/componentcfg/ASCII_CharStream.java \
jaujavalib/componentcfg/ComponentCfg.java \
jaujavalib/componentcfg/ComponentCfgBase.java \
jaujavalib/componentcfg/ComponentCfgBaseConstants.java \
jaujavalib/componentcfg/ComponentCfgBaseTokenManager.java \
jaujavalib/componentcfg/ComponentCfgException.java \
jaujavalib/componentcfg/ComponentCheckOpt.java \
jaujavalib/componentcfg/ComponentData.java \
jaujavalib/componentcfg/FramesComponentData.java \
jaujavalib/componentcfg/ParseException.java \
jaujavalib/componentcfg/Password.java \
jaujavalib/componentcfg/PasswordBlock.java \
jaujavalib/componentcfg/Token.java 

PACKAGES = \
jaujavalib.awt \
jaujavalib.tool \
jaujavalib.infomisc \
jaujavalib.misc \
jaujavalib.netmisc \
jaujavalib.timemisc \
jaujavalib.componentcfg
        
.SUFFIXES:	.jj .java .class

.jj.java:
	cd ${<D}; $(JAVACC) ${<F} 2>&1 | tee -a msg
	cat ${<D}/msg >> msg
  
.java.class:
	cd ${<D}; $(JAVAC) ${<F} 2>&1 | tee -a msg
	cat ${<D}/msg >> msg
	mkdir -p $(DESTDIR)/${@D}
	cp ${@D}/*.class $(DESTDIR)/${@D}

all: ${SRC:java=class}	

classcpy:
	for i in $$(find . -name \*.class -a -not -path ./tests/\* ) ; do \
		if [ ! -e $(DESTDIR)/$$(dirname $$i) ] ; then \
		  mkdir -p $(DESTDIR)/$$(dirname $$i) ; \
		fi ; \
		cp $$i $(DESTDIR)/$$i ; \
	done 
	echo classes copied

html: jjhtml
	if [ ! -e htmldoc ] ; then mkdir htmldoc; else rm -f htmldoc/*.html ; fi
	javadoc -d htmldoc \
	-sourcepath $(SOURCEPATH) \
	-author -version \
	$(PACKAGES)

jjhtml:
	cd jaujavalib/componentcfg ; \
	$(JJDOC) ComponentCfgBase.jj ; \
	mv ComponentCfgBase.html $(JAUJAVADIR)/htmldoc/ComponentCfgBaseEBNF.html

rmmsg:
	rm -f $$(find . -name msg)

rmclass:
	rm -f $$(find . -name \*.class)

# ... Clean up all generated files, except the documentation
clean: rmmsg rmclass
	rm -f resources/docs/*.html resources/docs/*.css 
	rm -f jaujavalib/componentcfg/ASCII_CharStream.* \
	   jaujavalib/componentcfg/ComponentCfgBase.java \
	   jaujavalib/componentcfg/ComponentCfgBase.class \
	   jaujavalib/componentcfg/ComponentCfgBaseConstants.* \
	   jaujavalib/componentcfg/ComponentCfgBaseTokenManager.* \
	   jaujavalib/componentcfg/ParseException.* \
	   jaujavalib/componentcfg/Token.*

# ... Special dependencies

jaujavalib/componentcfg/ASCII_CharStream.java: jaujavalib/componentcfg/ComponentCfgBase.java
jaujavalib/componentcfg/ComponentCfgBaseConstants.java: jaujavalib/componentcfg/ComponentCfgBase.java
jaujavalib/componentcfg/ComponentCfgBaseTokenManager.java: jaujavalib/componentcfg/ComponentCfgBase.java
jaujavalib/componentcfg/ParseException.java: jaujavalib/componentcfg/ComponentCfgBase.java

