#This makefile generates the VRP lexer and parser modules 
#i.e., parser.java, sym.java, Lexer.java and Lexer_simple.java
#and compiles the VRP packages

# Please adjust the paths CUP_HOME, JFLEX_HOME, VRP_HOME and JAVA_HOME to suit your needs
# (please do not add a trailing backslash)

# The path for VRP.
VRP_HOME=/isl/isl2/users/alexaki/VRP/RDF_VRP

# The path for CUP.
CUP_HOME=${VRP_HOME}/jars/java_cup.jar

# The path for JFlex.
JFLEX_HOME=${VRP_HOME}/jars/JFlex.jar

# The path for java.
JAVA_HOME=/usr/local/PUBjava/j2sdk1.4.0_01/bin

# For generating the parser.java and sym.java files by running CUP.
# The new files will be written to the subdirectory src/gr/forth/ics/vrp/corevrp/parser 
# of VRP_HOME.
Parser1:
	(cd ${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/parser; pwd; ${VRP_HOME}/java -cp ${CUP_HOME} java_cup.Main <${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/Cup_JFlex/parser.cup)
	cd ${VRP_HOME}

# For generating the Lexer.java file by running JFlex.
# The new file will be written to the subdirectory src/gr/forth/ics/vrp/corevrp/parser 
# of VRP_HOME.
Lexer:
	${JAVA_HOME}/java -mx256m -jar ${JFLEX_HOME} -d  ${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/parser ${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/Cup_JFlex/lexer.jflex

#
# For generating the simple lexer Lexer_simple.java file by running JFlex.
# The new file will be written to the subdirectory src/gr/forth/ics/vrp/corevrp/parser 
# of VRP_HOME.
Lexer_Simple:
	${JAVA_HOME}/java  -mx256m -jar ${JFLEX_HOME}  -d ${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/parser ${VRP_HOME}/src/gr/forth/ics/vrp/corevrp/Cup_JFlex/lexer_simple.jflex


# Compiling the packages.
setenv CLASSPATH CLASSPATH:${VRP_HOME}/jars/vrp2.5.jar:${VRP_HOME}/jars/java_cup.jar:${VRP_HOME}/jars/xsdlib.jar:${VRP_HOME}/jars/relaxngDatatype.jar

vrp:
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/model/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/parser/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/validator/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/vocabulary/*.java

	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/broker/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/visualization/*.java

	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/statistics/vrp/*.java
	${JAVA_HOME}/javac -d ${VRP_HOME}/classes src/gr/forth/ics/vrp/corevrp/vrpgui/*.java

# A test for running VRP.
test:
	${JAVA_HOME}/java gr.forth.ics.vrp.vrpgui.VRPGUI
