# Note-  If you are using jikes you will probably have to change
# the -classpath option.
#
# If you aren't using jikes you might like to  try it.  Look
# at http://www10.software.ibm.com/developerworks/opensource/jikes/index.html
# It compiles code about 10x faster than javac.
#



# CLASSPATH=.;c:/jdk1.2.2/lib/classes.zip
# CLASSPATH=.:/usr/local/share/java/lib/classes.java
# CLASSPATH=.;c:/jdk1.1.8/lib/classes.zip
CLASSPATH=/usr/local/jdk1.1.8/lib/classes.zip:.
# CLASSPATH=.

# RUNPATH=%CLASSPATH%;.\freetds_jdbc.jar;.\unittests;.
RUNPATH=$$CLASSPATH:`pwd`/freetds_jdbc.jar:./unittests:.



# JAVAC = c:\\jdk1.2.2\\bin\\javac
JAVAC = javac
JFLAGS += -g -d .
JFLAGS += -classpath $(CLASSPATH)

# JAVAC=jikes
# JIKESPATH=.;c:\jdk1.1.8\lib\classes.zip
# JFLAGS += +D +E -g -d .


JDBC_VER=1_0
# JDBC_VER=2_0


# JAR = c:\\jdk1.2.2\\bin\\jar
# JAR = c:\\jdk1.1.8\\bin\\jar
JAR = jar


DRIVER=                                                            	\
        com/internetcds/util/Logger.class                          	\
        com/internetcds/util/HexDump.class                         	\
        com/internetcds/jdbc/tds/DriverVersion.class               	\
        com/internetcds/jdbc/tds/TdsUtil.class                     	\
        com/internetcds/jdbc/tds/TdsException.class                	\
        com/internetcds/jdbc/tds/TdsConfused.class                 	\
        com/internetcds/jdbc/tds/TdsNotImplemented.class           	\
        com/internetcds/jdbc/tds/TdsUnknownPacketSubType.class     	\
        com/internetcds/jdbc/tds/TdsUnknownPacketType.class        	\
        com/internetcds/jdbc/tds/UniqueId.class                    	\
        com/internetcds/jdbc/tds/TdsAsciiInputStream.class         	\
        com/internetcds/jdbc/tds/EscapeProcessor.class             	\
        com/internetcds/jdbc/tds/MSSqlServerEscapeProcessor.class  	\
        com/internetcds/jdbc/tds/SybaseEscapeProcessor.class       	\
        com/internetcds/jdbc/tds/Column.class                      	\
        com/internetcds/jdbc/tds/Columns.class                     	\
        com/internetcds/jdbc/tds/ParameterListItem.class           	\
	com/internetcds/jdbc/tds/SQLWarningChain.class                  \
	com/internetcds/jdbc/tds/EncodingHelper.class                   \
        com/internetcds/jdbc/tds/TdsComm.class                     	\
        com/internetcds/jdbc/tds/CancelController.class            	\
        com/internetcds/jdbc/tds/TdsDefinitions.class              	\
        com/internetcds/jdbc/tds/PacketResult.class                	\
        com/internetcds/jdbc/tds/PacketUnknown.class               	\
        com/internetcds/jdbc/tds/PacketMsgResult.class             	\
        com/internetcds/jdbc/tds/PacketErrorResult.class           	\
        com/internetcds/jdbc/tds/PacketRetStatResult.class         	\
        com/internetcds/jdbc/tds/PacketEndTokenResult.class        	\
        com/internetcds/jdbc/tds/PacketDoneInProcResult.class      	\
        com/internetcds/jdbc/tds/PacketTabNameResult.class         	\
        com/internetcds/jdbc/tds/PacketColumnNamesResult.class     	\
        com/internetcds/jdbc/tds/PacketColumnInfoResult.class      	\
        com/internetcds/jdbc/tds/PacketColumnOrderResult.class     	\
        com/internetcds/jdbc/tds/PacketRowResult.class             	\
        com/internetcds/jdbc/tds/PacketControlResult.class         	\
        com/internetcds/jdbc/tds/Tds.class                         	\
        com/internetcds/jdbc/tds/ParameterUtils.class              	\
        com/internetcds/jdbc/tds/Procedure.class                   	\
        com/internetcds/jdbc/tds/SqlMessage.class                  	\
        com/internetcds/jdbc/tds/Context.class                     	\
	com/internetcds/jdbc/tds/Constructors.class                     \
        com/internetcds/jdbc/tds/ConnectionHelper.class            	\
        com/internetcds/jdbc/tds/DatabaseMetaData.class            	\
        com/internetcds/jdbc/tds/ResultSetMetaData.class           	\
        com/internetcds/jdbc/tds/Statement.class                   	\
        com/internetcds/jdbc/tds/ResultSet_base.class                   \
        com/internetcds/jdbc/tds/ResultSet_$(JDBC_VER).class            \
        com/internetcds/jdbc/tds/PreparedStatementHelper.class     	\
        com/internetcds/jdbc/tds/PreparedStatement_base.class         	\
        com/internetcds/jdbc/tds/PreparedStatement_$(JDBC_VER).class    \
        com/internetcds/jdbc/tds/CallableStatement_base.class         	\
        com/internetcds/jdbc/tds/CallableStatement_$(JDBC_VER).class   	\
        com/internetcds/jdbc/tds/Connection_base.class                 	\
        com/internetcds/jdbc/tds/Connection_$(JDBC_VER).class           \
        com/internetcds/jdbc/tds/Driver.class                      	\
        com/internetcds/jdbc/tds/SybaseDriver.class                	\



all: freetds_jdbc.jar


test_weekly: $(DRIVER) FORCE
	$(JAVAC) $(JFLAGS) Fp4AbstractDBAccess.java
	$(JAVAC) $(JFLAGS) MSSqlServerDatabaseAccess.java

freetds_jdbc.jar: $(DRIVER)
	$(JAR) c0f freetds_jdbc.jar com

driver: $(DRIVER)

tests: freetds_jdbc.jar ./unittests
	(cd unittests; make)

adhoctests: $(DRIVER) ./tmptests
	(cd tmptests; make)

UpdateCdsnetServerAccountsTable: $(DRIVER) tmptests
	(java UpdateCdsnetServerAccountsTable -verbose -purge backmaster.cdsnet.net)

TransferNewSignupRequests: $(DRIVER)
	(CLASSPATH=$$CLASSPATH:$$HOME/GUD/Gud/JavaTools; cd $$HOME/GUD/Gud/JavaTools; $(JAVAC) TransferNewSignupRequests.java)

runtests: freetds_jdbc.jar tests
	(CLASSPATH=`pwd`:`pwd`/unittests:$$CLASSPATH; cd unittests; make runtests)

sybtests: tests
	(CLASSPATH=`pwd`:`pwd`/unittests:$$CLASSPATH; cd unittests; make sybtests)

t0001: tests
	(CLASSPATH=$(RUNPATH); java t0001)

t0002: tests
	(CLASSPATH=$(RUNPATH); java t0002)

t0003: tests
	(CLASSPATH=$(RUNPATH); java t0003)

t0004: tests
	(CLASSPATH=$(RUNPATH); java t0004)

t0005: tests
	(CLASSPATH=$(RUNPATH); java t0005)

t0006: tests
	(CLASSPATH=$(RUNPATH); java t0006)

t0007: tests
	(CLASSPATH=$(RUNPATH); java t0007)

t0008: tests
	(CLASSPATH=$(RUNPATH); java t0008)

t0009: tests
	(CLASSPATH=$(RUNPATH); java t0009)

t0010: tests
	(CLASSPATH=$(RUNPATH); java t0010)

t0011: tests
	(CLASSPATH=$(RUNPATH); java t0011)

t0012: tests
	(CLASSPATH=$(RUNPATH); java t0012)

t0013: tests
	(CLASSPATH=$(RUNPATH); java t0013)

t0014: tests
	(CLASSPATH=$(RUNPATH); java t0014)

t0017:
	java -classpath c:\\jdk1.1.8\\classes;c:\\jdk1.1.8\\lib\\classes.zip;. t0017

t0018: tests
	(CLASSPATH=$(RUNPATH); java t0018)

t0019: tests
	(CLASSPATH=$(RUNPATH); java t0019)

t0020: tests
	(CLASSPATH=$(RUNPATH); java t0020)

t0021: tests
	(CLASSPATH=$(RUNPATH); java t0021)

t0022: tests
	(CLASSPATH=$(RUNPATH); java t0022)

t0023: tests
	(CLASSPATH=$(RUNPATH); java t0023)

t0024: tests
	(CLASSPATH=$(RUNPATH); java t0024)

t0025: tests
	(CLASSPATH=$(RUNPATH); java t0025)

t0027: tests
	(CLASSPATH=$(RUNPATH); java t0027)

t0030: tests
	(CLASSPATH=$(RUNPATH); java t0030)

t0031: tests
	(CLASSPATH=$(RUNPATH); java t0031)

t0032: tests
	(CLASSPATH=$(RUNPATH); java t0032)

t0033: tests
	(CLASSPATH=$(RUNPATH); java t0033)

t0036: tests
	(CLASSPATH=$(RUNPATH); java t0036)

t0037: tests
	(CLASSPATH=$(RUNPATH); java t0037)

t0039: tests
	(CLASSPATH=$(RUNPATH); java t0039)

t0042: tests
	java t0042

t0045: tests
	java t0045

t0046: tests
	java t0046

t0047: tests
	(CLASSPATH=$(RUNPATH); java t0047)


jdbctest1: adhoctests
	(cd tmptests; CLASSPATH=$$CLASSPATH:`pwd`/..; java jdbctest1)

jdbctest2: adhoctests $(DRIVER)
	(cd tmptests; CLASSPATH=$$CLASSPATH:`pwd`/..; java jdbctest2)

foo: $(DRIVER) foo.java
	$(JAVAC) $(JFLAGS)  foo.java
	CLASSPATH=$$CLASSPATH:`pwd`/freetds_jdbc.jar java foo

com/internetcds/util/HexDump.class: HexDump.java
	$(JAVAC) $(JFLAGS)   HexDump.java

com/internetcds/util/Logger.class: Logger.java
	$(JAVAC) $(JFLAGS)   Logger.java

com/internetcds/jdbc/tds/Constructors.class: Constructors.java
	$(JAVAC) $(JFLAGS)   Constructors.java

com/internetcds/jdbc/tds/TdsUtil.class: TdsUtil.java
	$(JAVAC) $(JFLAGS)   TdsUtil.java

com/internetcds/jdbc/tds/TdsException.class: TdsException.java
	$(JAVAC) $(JFLAGS)   TdsException.java

testListTables: adhoctests
	(CLASSPATH=$$CLASSPATH:`pwd`/tmptests; java list_tables)

testSimplePrepared: adhoctests
	(CLASSPATH=$$CLASSPATH:`pwd`/tmptests; java simple_prepared 17)

testManyTypes: $(DRIVER) adhoctests
	(CLASSPATH=$$CLASSPATH:`pwd`/tmptests; java many_types)

jexplorer: $(DRIVER)
	(CLASSPATH=`pwd`:$$CLASSPATH:.; cd tmptests/JEXPLORER.DISTRIB; java Jexplorer)

testQueryApp: adhoctests
	(echo 'select * from many_types';			 \
	 echo go;						 \
	 echo 'select count(*) from many_types';		 \
	 echo go;						 \
	 echo 'select mychar10, char1 from many_types order by mychar10, char1'; \
	 echo go;						 \
	 echo quit;) | CLASSPATH=$$CLASSPATH:`pwd`/tmptests java QueryApp


testCallable: $(DRIVER)
	java com.internetcds.jdbc.tds.CallableStatement

testPrepared: $(DRIVER)
	java com.internetcds.jdbc.tds.PreparedStatement

testStatement: $(DRIVER)
	java com.internetcds.jdbc.tds.Statement

testDatabaseMetaData: $(DRIVER)
	java com.internetcds.jdbc.tds.DatabaseMetaData


#com/internetcds/jdbc/tds/TdsQueryCanceled.class: TdsQueryCanceled.java
#	$(JAVAC) $(JFLAGS)   $>

com/internetcds/jdbc/tds/UniqueId.class: UniqueId.java
	$(JAVAC) $(JFLAGS)   UniqueId.java

com/internetcds/jdbc/tds/SqlMessage.class: SqlMessage.java
	$(JAVAC) $(JFLAGS)   SqlMessage.java

com/internetcds/jdbc/tds/CancelController.class: CancelController.java
	$(JAVAC) $(JFLAGS)   CancelController.java

com/internetcds/jdbc/tds/TdsNotImplemented.class: TdsNotImplemented.java
	$(JAVAC) $(JFLAGS)   TdsNotImplemented.java

com/internetcds/jdbc/tds/TdsConfused.class: TdsConfused.java
	$(JAVAC) $(JFLAGS)   TdsConfused.java

com/internetcds/jdbc/tds/TdsAsciiInputStream.class: TdsAsciiInputStream.java
	$(JAVAC) $(JFLAGS)   TdsAsciiInputStream.java

com/internetcds/jdbc/tds/TdsUnknownPacketType.class: TdsUnknownPacketType.java
	$(JAVAC) $(JFLAGS)   TdsUnknownPacketType.java

com/internetcds/jdbc/tds/TdsUnknownPacketSubType.class: TdsUnknownPacketSubType.java
	$(JAVAC) $(JFLAGS)   TdsUnknownPacketSubType.java

com/internetcds/jdbc/tds/TdsComm.class: TdsComm.java com/internetcds/jdbc/tds/TdsDefinitions.class
	$(JAVAC) $(JFLAGS)   TdsComm.java

com/internetcds/jdbc/tds/EscapeProcessor.class: EscapeProcessor.java
	$(JAVAC) $(JFLAGS)   EscapeProcessor.java

com/internetcds/jdbc/tds/MSSqlServerEscapeProcessor.class: MSSqlServerEscapeProcessor.java
	$(JAVAC) $(JFLAGS)   MSSqlServerEscapeProcessor.java

com/internetcds/jdbc/tds/SybaseEscapeProcessor.class: SybaseEscapeProcessor.java
	$(JAVAC) $(JFLAGS)   SybaseEscapeProcessor.java

com/internetcds/jdbc/tds/Tds.class: Tds.java com/internetcds/jdbc/tds/TdsDefinitions.class com/internetcds/jdbc/tds/Context.class
	$(JAVAC) $(JFLAGS)   Tds.java

com/internetcds/jdbc/tds/TdsDefinitions.class: TdsDefinitions.java
	$(JAVAC) $(JFLAGS)   TdsDefinitions.java

com/internetcds/jdbc/tds/Context.class: Context.java
	$(JAVAC) $(JFLAGS)   Context.java

com/internetcds/jdbc/tds/PacketResult.class: PacketResult.java com/internetcds/jdbc/tds/SqlMessage.class
	$(JAVAC) $(JFLAGS)   PacketResult.java

com/internetcds/jdbc/tds/PacketUnknown.class: PacketUnknown.java
	$(JAVAC) $(JFLAGS)   PacketUnknown.java

com/internetcds/jdbc/tds/PacketMsgResult.class: PacketMsgResult.java com/internetcds/jdbc/tds/PacketResult.class
	$(JAVAC) $(JFLAGS)   PacketMsgResult.java

com/internetcds/jdbc/tds/PacketErrorResult.class: PacketErrorResult.java
	$(JAVAC) $(JFLAGS)   PacketErrorResult.java

com/internetcds/jdbc/tds/PacketEndTokenResult.class: PacketEndTokenResult.java
	$(JAVAC) $(JFLAGS)   PacketEndTokenResult.java

com/internetcds/jdbc/tds/PacketDoneInProcResult.class: PacketDoneInProcResult.java
	$(JAVAC) $(JFLAGS)   PacketDoneInProcResult.java

com/internetcds/jdbc/tds/PacketRetStatResult.class: PacketRetStatResult.java
	$(JAVAC) $(JFLAGS)   PacketRetStatResult.java

com/internetcds/jdbc/tds/Procedure.class: Procedure.java
	$(JAVAC) $(JFLAGS)   Procedure.java

com/internetcds/jdbc/tds/ParameterListItem.class: ParameterListItem.java
	$(JAVAC) $(JFLAGS)   ParameterListItem.java

com/internetcds/jdbc/tds/ParameterUtils.class: ParameterUtils.java
	$(JAVAC) $(JFLAGS)   ParameterUtils.java

# com/internetcds/jdbc/tds/TdsInstance.class: TdsInstance.java
#	$(JAVAC) $(JFLAGS)   TdsInstance.java

com/internetcds/jdbc/tds/PacketRowResult.class: PacketRowResult.java
	$(JAVAC) $(JFLAGS)   PacketRowResult.java

com/internetcds/jdbc/tds/PacketControlResult.class: PacketControlResult.java
	$(JAVAC) $(JFLAGS)   PacketControlResult.java

com/internetcds/jdbc/tds/PacketTabNameResult.class: PacketTabNameResult.java
	$(JAVAC) $(JFLAGS)   PacketTabNameResult.java

com/internetcds/jdbc/tds/PacketColumnInfoResult.class: PacketColumnInfoResult.java
	$(JAVAC) $(JFLAGS)   PacketColumnInfoResult.java

com/internetcds/jdbc/tds/PacketColumnOrderResult.class: PacketColumnOrderResult.java
	$(JAVAC) $(JFLAGS)   PacketColumnOrderResult.java

com/internetcds/jdbc/tds/PacketColumnNamesResult.class: PacketColumnNamesResult.java
	$(JAVAC) $(JFLAGS)   PacketColumnNamesResult.java

com/internetcds/jdbc/tds/Column.class: Column.java
	$(JAVAC) $(JFLAGS)   Column.java

com/internetcds/jdbc/tds/Columns.class: Columns.java
	$(JAVAC) $(JFLAGS)   Columns.java

com/internetcds/jdbc/tds/Driver.class: Driver.java
	$(JAVAC) $(JFLAGS)   Driver.java

com/internetcds/jdbc/tds/SybaseDriver.class: SybaseDriver.java
	$(JAVAC) $(JFLAGS)   SybaseDriver.java

com/internetcds/jdbc/tds/DriverVersion.class: DriverVersion.java
	$(JAVAC) $(JFLAGS)   DriverVersion.java

com/internetcds/jdbc/tds/ConnectionHelper.class: ConnectionHelper.java
	$(JAVAC) $(JFLAGS)   ConnectionHelper.java

com/internetcds/jdbc/tds/Connection_base.class:			    \
		  Connection_base.java				    \
		  com/internetcds/jdbc/tds/Tds.class		    \
		  com/internetcds/jdbc/tds/Statement.class	    \
		  com/internetcds/jdbc/tds/CallableStatement_base.class  \
		  com/internetcds/jdbc/tds/PreparedStatement_base.class  \
		  com/internetcds/jdbc/tds/DatabaseMetaData.class   \
		  ConnectionHelper.java
	$(JAVAC) $(JFLAGS) 	 Connection_base.java

com/internetcds/jdbc/tds/Connection_1_0.class:                      \
                  com/internetcds/jdbc/tds/Connection_base.class    \
                  Connection_1_0.java
	$(JAVAC) $(JFLAGS) 	 Connection_1_0.java

com/internetcds/jdbc/tds/Connection_2_0.class:                      \
                  com/internetcds/jdbc/tds/Connection_base.class    \
                  Connection_2_0.java
	$(JAVAC) $(JFLAGS) 	 Connection_2_0.java

# com/internetcds/jdbc/tds/SybaseConnection.class:			    \
#		  SybaseConnection.java
#	$(JAVAC) $(JFLAGS) 	 SybaseConnection.java

com/internetcds/jdbc/tds/DatabaseMetaData.class: DatabaseMetaData.java
	$(JAVAC) $(JFLAGS)   DatabaseMetaData.java

com/internetcds/jdbc/tds/EncodingHelper.class: EncodingHelper.java
	$(JAVAC) $(JFLAGS)   EncodingHelper.java

com/internetcds/jdbc/tds/SQLWarningChain.class: SQLWarningChain.java com/internetcds/jdbc/tds/PacketMsgResult.class com/internetcds/jdbc/tds/PacketErrorResult.class
	$(JAVAC) $(JFLAGS)   SQLWarningChain.java

com/internetcds/jdbc/tds/PreparedStatement_base.class: PreparedStatement_base.java com/internetcds/jdbc/tds/Statement.class
	$(JAVAC) $(JFLAGS)   PreparedStatement_base.java

com/internetcds/jdbc/tds/PreparedStatement_1_0.class: PreparedStatement_1_0.java com/internetcds/jdbc/tds/PreparedStatement_base.class
	$(JAVAC) $(JFLAGS)   PreparedStatement_1_0.java

com/internetcds/jdbc/tds/PreparedStatement_2_0.class: PreparedStatement_2_0.java com/internetcds/jdbc/tds/PreparedStatement_base.class
	$(JAVAC) $(JFLAGS)   PreparedStatement_2_0.java

com/internetcds/jdbc/tds/PreparedStatementHelper.class: PreparedStatementHelper.java
	$(JAVAC) $(JFLAGS)   PreparedStatementHelper.java

com/internetcds/jdbc/tds/CallableStatement_base.class: CallableStatement_base.java com/internetcds/jdbc/tds/PreparedStatement_base.class
	$(JAVAC) $(JFLAGS)   CallableStatement_base.java

com/internetcds/jdbc/tds/CallableStatement_1_0.class: CallableStatement_base.java 
	$(JAVAC) $(JFLAGS)   CallableStatement_1_0.java

com/internetcds/jdbc/tds/CallableStatement_2_0.class: CallableStatement_base.java 
	$(JAVAC) $(JFLAGS)   CallableStatement_2_0.java

com/internetcds/jdbc/tds/Statement.class: Statement.java com/internetcds/jdbc/tds/ConnectionHelper.class com/internetcds/jdbc/tds/ResultSet_base.class
	$(JAVAC) $(JFLAGS)  Statement.java

com/internetcds/jdbc/tds/ResultSet_base.class: ResultSet_base.java
	$(JAVAC) $(JFLAGS)   ResultSet_base.java

com/internetcds/jdbc/tds/ResultSet_1_0.class: ResultSet_1_0.java
	$(JAVAC) $(JFLAGS)   ResultSet_1_0.java


com/internetcds/jdbc/tds/ResultSet_2_0.class: ResultSet_2_0.java 
	$(JAVAC) $(JFLAGS)   ResultSet_2_0.java


com/internetcds/jdbc/tds/ResultSetMetaData.class: ResultSetMetaData.java
	$(JAVAC) $(JFLAGS)   ResultSetMetaData.java

clean:
	-rm $(DRIVER)

javadoc: .
	javadoc -author -private -package *.java
	-mkdir javadocs
	-mv com.*.html	  javadocs
	-mv tree.html	  javadocs
	-mv packages.html javadocs
	-mv AllNames.html javadocs
	-mv index.html	  javadocs


metrics: .
	cccc *.java
	# mv cccc.htm docs
	-rm cccc_mod.ext cccc_mem.ext cccc_use.ext


install: $(DRIVER)
	tar cvf - $(DRIVER) | (cd /usr/local/share/LocalJava; tar xvf -)

FORCE:
