#
#			   INFORMIX SOFTWARE, INC.
#
#			      PROPRIETARY DATA
#
#	THIS DOCUMENT CONTAINS TRADE SECRET DATA WHICH IS THE PROPERTY OF 
#	INFORMIX SOFTWARE, INC.  THIS DOCUMENT IS SUBMITTED TO RECIPIENT IN
#	CONFIDENCE.  INFORMATION CONTAINED HEREIN MAY NOT BE USED, COPIED OR 
#	DISCLOSED IN WHOLE OR IN PART EXCEPT AS PERMITTED BY WRITTEN AGREEMENT 
#	SIGNED BY AN OFFICER OF INFORMIX SOFTWARE, INC.
#
#	THIS MATERIAL IS ALSO COPYRIGHTED AS AN UNPUBLISHED WORK UNDER
#	SECTIONS 104 AND 408 OF TITLE 17 OF THE UNITED STATES CODE. 
#	UNAUTHORIZED USE, COPYING OR OTHER REPRODUCTION IS PROHIBITED BY LAW.
#
#	Title: Makefile
#
#	Description: 
#	This Makefile can be used to build C++ Interface examples with NMAKE.
#	To build the examples INFORMIXDIR and MSVC environment 
#		variables must be set.
#	To run setup, database with the same name as username must exist. 
#

CPPIFHOME = $(INFORMIXDIR)
LIBDMIHOME = $(INFORMIXDIR)

ESQL      = $(INFORMIXDIR)\bin\esql

CC = cl
CDEB = -Zi -Od
CINCL = -I$(CPPIFHOME)\incl\cpp -I$(LIBDMIHOME)\incl\dmi \
	-I$(INFORMIXDIR)\incl\esql
CDEF = -D_CONSOLE -DWIN32 -DMITRACE_OFF
CFLAGS = $(COPTS) -MD $(CDEB) $(CINCL) $(CDEF)

LINK = link
LDEB = /debug /debugtype:both
LFLAGS = $(LOPTS) /subsystem:console $(LDEB)
LIBS = $(CPPIFHOME)\lib\cpp\libthc++.lib $(LIBDMIHOME)\lib\dmi\libthdmi.lib \
	$(INFORMIXDIR)\lib\isqlt09a.lib

PROGRAMS = blobload.exe cnvex.exe contain.exe contain2.exe \
	csql.exe csql2.exe csql3.exe curstst.exe cursupd.exe dtex.exe deldrv.exe \
	fsexamp1.exe loadtab.exe loex1.exe loex2.exe queryex.exe rawval.exe \
	routine.exe rowset.exe seqsetex.exe sysname.exe tabcnt.exe

.obj.exe:
	$(LINK) $(LFLAGS) /out:$*.exe $*.obj $(LIBS)

.cpp.obj:
	$(CC) $(CFLAGS) -c $*.cpp

all: testtype.dll $(PROGRAMS)

setup: all
	csql2 <cleanup.sql
	csql2 <setup.sql	
	blobload.exe -u -f sample.txt -d %USERNAME% -t regresstab -b byte_val -k boolean_val t

blobload.exe: blobload.ec
        $(ESQL) blobload.ec -o blobload.exe

cnvex.exe: cnvex.obj

contain.exe: contain.obj ifval.obj
	$(LINK) $(LFLAGS) /out:$*.exe contain.obj ifval.obj $(LIBS)

contain2.exe: contain.obj rowref.obj
	$(LINK) $(LFLAGS) /out:$*.exe contain.obj rowref.obj $(LIBS)

csql.exe: csql.obj simpval.obj
	$(LINK) $(LFLAGS) /out:$*.exe csql.obj simpval.obj $(LIBS)

csql2.exe: csql2.obj

csql3.exe: csql3.obj

curstst.exe: curstst.obj

cursupd.exe: cursupd.obj

dtex.exe: dtex.obj

deldrv.exe: deldrv.obj delegate.obj
	$(LINK) $(LFLAGS) /out:$*.exe deldrv.obj delegate.obj $(LIBS)

fsexamp1.exe: fsexamp1.obj

loadtab.exe: loadtab.obj

loex1.exe: loex1.obj

loex2.exe: loex2.obj

queryex.exe: queryex.obj

rawval.exe: rawval.obj

routine.exe: routine.obj

rowset.exe: rowset.obj

seqsetex.exe: seqsetex.obj

tabcnt.exe: tabcnt.obj

sysname.exe: sysname.obj

testtype.dll: testtype.obj
	$(LINK) $(LOPTS) /dll $(LDEB) testtype.obj /export:MakeValue $(LIBS)

$(LFLAGS) /out:$*.exe $*.obj $(LIBS)

clean:
	del /q $(PROGRAMS) *.obj *.pdb *.lib *.exp *.lnk *.map *.dll \
		blobload.c blobload.c_

