#Makefile for sample java files
#
# If not installed in ORACLE_HOME, set ORACLE_HOME to installation root
#
# ======================================================================

#.SUFFIXES : .java .class

COMP=  widl checkbook trade node car book po dtd schema

# Change it to the appropriate separator based on the OS.
PATHSEP = :

# Assumes that the CLASSPATH contains JDK classes. Set the classpath to 
# include the parser, schema and classgen jar files.

MAKE_CLASSPATH = .$(PATHSEP)$(ORACLE_HOME)/lib/xmlparserv2.jar$(PATHSEP)$(ORACLE_HOME)/lib/classgen.jar$(PATHSEP)$(ORACLE_HOME)/lib/xschema.jar$(PATHSEP)$(CLASSPATH)

demo: dtd schema
dtd:	widl checkbook trade node
schema: car book po
	
widl:
	cd ./Widl; javac -classpath "$(MAKE_CLASSPATH)" SampleMain.java
	cd ./Widl; java -classpath "$(MAKE_CLASSPATH)" SampleMain Widl.xml
	cd ./Widl; javac -classpath "$(MAKE_CLASSPATH)" *.java
	cd ./Widl; java  -classpath "$(MAKE_CLASSPATH)" TestWidl > Widl_out.xml

checkbook:
	cd ./Checkbook; java -classpath "$(MAKE_CLASSPATH)" \
           oracle.xml.classgen.oracg -comment -dtd -root checkbook checkbook.dtd
	cd ./Checkbook; javac -classpath "$(MAKE_CLASSPATH)" CheckbookApp.java 
	cd ./Checkbook; java -classpath "$(MAKE_CLASSPATH)" \
	   CheckbookApp checkbook.xml > checkbook_out.xml

trade:
	cd ./Trade; java -classpath "$(MAKE_CLASSPATH)" \
	   oracle.xml.classgen.oracg -comment -dtd -root trade trade.dtd
	cd ./Trade; javac -classpath "$(MAKE_CLASSPATH)" TradeLister.java
	cd ./Trade; java -classpath "$(MAKE_CLASSPATH)" TradeLister trade.xml > trade_out.xml

node:
	cd ./Node; java -classpath "$(MAKE_CLASSPATH)" \
 	   oracle.xml.classgen.oracg -cooment -dtd -root node node.dtd
	cd ./Node; javac -classpath "$(MAKE_CLASSPATH)" NodeLister.java
	cd ./Node; java -classpath "$(MAKE_CLASSPATH)" NodeLister node.xml > node_out.xml

car:
	cd ./Car; java -classpath "$(MAKE_CLASSPATH)" \
	   oracle.xml.classgen.oracg -comment -schema car.xsd -package package1 
	cd ./Car; javac -classpath "$(MAKE_CLASSPATH)" CarDealer.java package1/*.java
	cd ./Car; java -classpath "$(MAKE_CLASSPATH)" CarDealer > car_out.xml

book:
	cd ./Book; java -classpath "$(MAKE_CLASSPATH)" \
           oracle.xml.classgen.oracg -comment -schema book.xsd -package package2 
	cd ./Book; javac -classpath "$(MAKE_CLASSPATH)" BookCatalogue.java package2/*.java
	cd ./Book; java -classpath "$(MAKE_CLASSPATH)" BookCatalogue > book_out.xml

po:
	cd ./Po; java -classpath "$(MAKE_CLASSPATH)" \
	   oracle.xml.classgen.oracg -comment -schema po.xsd -package package3 
	cd ./Po; javac -classpath "$(MAKE_CLASSPATH)" TestPo.java package3/*.java
	cd ./Po; java -classpath "$(MAKE_CLASSPATH)" TestPo > po_out.xml

clean:
	cd ./Widl; rm -f *.class  WIDL_dtd.txt Widl_out.xml
	cd ./Widl; rm -f BINDING.java CONDITION.java REGION.java SERVICE.java VARIABLE.java WIDL.java
	cd ./Checkbook; rm -rf *.class checkbook_out.xml Checkbook_dtd.txt xml.ser
	cd ./Checkbook; rm -f Amount.java Balance.java Check.java Checkbook.java Cleared.java \
	   Date.java Deposit.java Memo.java Name.java Pending.java Transactions.java \
	   Void.java Withdrawal.java 
	cd ./Trade; rm -f *.class; rm -f trade_out.xml Trade_dtd.txt xml.ser
	cd ./Trade; rm -f Date.java Limit.java Quantity.java Stop.java Symbol.java Trade.java
	cd ./Node; rm -rf *.class; rm -f node_out.xml Node_dtd.txt Node.java xml.ser
	cd ./Car; rm -f *.class car_out.xml; rm -rf package1
	cd ./Book; rm -f *.class; rm -f book_out.xml; rm -rf package2
	cd ./Po; rm -f *.class; rm -f po_out.xml; rm -rf package3
