# This Makefile is less than ideal in that it assumes there's only one
# level of directories under this.  It should probably be recursive
# instead, but for now this is adqeuate.

# Comment out the next line if you do not have the jdeps program
HAVEJDEPS	= t

DEBUG		= -g
#OPTIMIZE	= -O
CLASSDIR	= ../../classes
JDKCLASSPATH	= $(JDKHOME)/jre/lib/rt.jar
CLASSPATH	= ${CLASSDIR}:${JDKCLASSPATH}
JIKESFLAGS	= +D +P
JFLAGS		= ${DEBUG} ${OPTIMIZE} -deprecation -d ${CLASSDIR} -classpath ${CLASSPATH} ${JIKESFLAGS} 
JAVAC		= jikes
JAVACOMPILE	= ${JAVAC} ${JFLAGS} ${INCLUDE}
DOCDIR		= ../../javadoc
UTILDIR		= ../util
VPATH		= ${CLASSDIR}
PACKAGES	= edu.berkeley.guir.gesture \
			edu.berkeley.guir.gesture.features \
			edu.berkeley.guir.util

######################################################################
# No user-servicable parts below here
######################################################################

default: ${CLASSDIR}/edu/berkeley/guir/gesture/GestureSetFrame.class

all:
	${JAVACOMPILE} *.java features/*.java ${UTILDIR}/*.java

${CLASSDIR}/%.class: %.java
	${JAVACOMPILE} ${<}

${CLASSDIR}/edu/berkeley/guir/util/%.class: ${UTILDIR}/%.java
	(cd ${UTILDIR} ; make ${<})

${CLASSDIR}/gesture.jar: ${CLASSES}
	jar cf ${@} ${^}

${DOCDIR}:
	if [ ! -e ${DOCDIR}  ]; then mkdir ${DOCDIR} ; fi

# special rules

HumanSimilarity.java: make-similarity-equation.py logistic-coefficients.txt
	make-similarity-equation.py logistic-coefficients.txt > ${@}

# rule for making javadoc happy
jddirs:
	mkdirhier edu/berkeley/guir
	ln -s -f ../../../../gesturelib edu/berkeley/guir/gesture
	ln -s -f ../../../../util edu/berkeley/guir/util

docs:	${DOCDIR} jddirs
	javadoc -d ${DOCDIR} -sourcepath . -link file:/usr/cluster/jdk/docs/api ${PACKAGES}

only:
	${JAVACOMPILE} ${N}.java

obj:
	make ${CLASSDIR}/edu/berkeley/guir/gesture/${N}.class

wdep:
	make EXTRAFLAGS=-Xdepend ${CLASSDIR}/${N}.class

jar:	${CLASSDIR}/gesture.jar

clean:
	rm -fr doc
	rm -f ${CLASSES} 

# extra dependencies that jdeps can't pick up

${CLASSDIR}/edu/berkeley/guir/gesture/FeatureVector.class:	$(foreach i, InitAngleCosine.class InitAngleSine.class BoundsSize.class BoundsAngle.class EndsDistance.class EndsAngleCosine.class EndsAngleSine.class TotalLength.class TotalAngle.class TotalAbsAngle.class Sharpness.class, ${CLASSDIR}/edu/berkeley/guir/gesture/features/${i})
