#  (C) COPYRIGHT International Business Machines Corp. 1996, 2000
#  All Rights Reserved.
#
#  US Government Users Restricted Rights - Use, duplication or
#  disclosure restricted by GSA ADP Schedule Contract with IBM Corp.


# makefile for DB2 Universal Database
# C sample programs -- Windows 32-bit operating systems
			 

# Enter one of the following commands 
#
#   nmake <app_name>        - Builds the program designated by <app_name>
#
#   nmake all               - Builds the all the supplied sample programs
#   nmake udfspserver       - Builds the examples that implement
#                             stored procedures and UDFs (on the server)
#   nmake localclient       - Builds the examples that can only be run
#                             successfully on a server 
#   nmake udfspclient       - Builds the examples that call stored 
#                             procedures and UDFs ( they can run remotely )
#   nmake otherremoteclient - Builds the examples that will run successfully
#                             on a client platform ( others than udfspclient )
#   nmake allremoteclient   - Builds programs in udfspclient and otherremoteclient
#                             categories
#
#   nmake clean             - Erases intermediate files
#   nmake cleanall          - Erases all files produced in the build process,
#                             except the original source files

# The makefile contains the following sections:
#    1 -- COMPILERS + VARIABLES
#    2 -- MAKE CATEGORIES
#    3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES


##################################################################################
#                  1 -- COMPILERS + VARIABLES                                     
##################################################################################

# Note: The default compiler options are set for the Microsoft Visual C++ 
#       compiler. If you use the IBM VisualAge C++ compiler, remove the
#       "COMPILER=MS" below and uncomment "COMPILER=IBM" that follows.

# Set Compiler
COMPILER=MS
#COMPILER=IBM

!IF "$(COMPILER)" == "MS"
# Microsoft Visual C++ compiler
CC=cl
LINK=link
# Compile and link options.
CFLAGS=-Z7 -Od -c -W2 -D_X86_=1 -DWIN32 -I"$(DB2PATH)\include"
CFLAGSSRV=-Z7 -Od -c -W2 -D_X86_=1 -DWIN32 -I"$(DB2PATH)\include"
LINKFLAGS=-debug:full -debugtype:cv
LINKFLAGS1=-debug:full -debugtype:cv -dll
!ENDIF

!IF "$(COMPILER)" == "IBM"
# IBM VisualAge C++ compiler
CC=icc
LINK=ilink
CFLAGS=-c -Ti -W1
CFLAGSSRV=-c+ -Ti -Ge- -Gm+ -W1
LINKFLAGS=/MAP /DEBUG /ST:96000 /PM:VIO
LINKFLAGS1=/MAP /DEBUG /ST:96000 /PM:VIO /DLL
!ENDIF

LIBS="$(DB2PATH)\lib\db2api.lib"
LIBS1="$(DB2PATH)\lib\db2api.lib" "$(DB2PATH)\lib\db2apie.lib"

# To connect to a remote SAMPLE database cataloged on the client machine
# with another name, update the DB variable.
DB=sample
# Set UID and PWD if neccesary  
UID=
PWD=

COPY = copy
ERASE = del

#############################################################################
#  2 -- MAKE CATEGORIES
#              2a - nmake all(= allremoteclient + localclient +udfspserver)
#              2b - nmake udfspserver
#              2c - nmake localclient  
#              2d - nmake udfspclient
#              2e - nmake otherremoteclient
#              2f - nmake allremoteclient(= udfspclient + otherremoteclient)
#              2g - nmake clean
#              2h - nmake cleanall
#############################################################################


#****************************************************************************
#                  2a - nmake all
#****************************************************************************

all : \
	allremoteclient \
	localclient \
	udfspserver

#****************************************************************************
#                  2b - nmake udfspserver
#****************************************************************************

udfspserver : \
	spserver \
	udf udfsrv

#****************************************************************************
#                  2c - nmake localclient 
#****************************************************************************

localclient : \
	autocfg \
	dbstart dbstop 

#****************************************************************************
#                  2d - nmake udfspclient
#****************************************************************************

udfspclient : \
	calludf \
	spclient udfcli

#****************************************************************************
#                  2e - nmake otherremoteclient
#****************************************************************************

otherremoteclient : \
	adhoc advsql asynrlog \
	backrest blobfile \
	cli_info client columns cursor \
	d_dbconf d_dbmcon db_udcs db2mon dbauth dbcat \
	dbcmt dbconf dbinst dbmconf dbsnap \
	dbstat dcscat delet dmscont dynamic \
	ebcdicdb expsamp \
	impexp \
	joinsql \
	loadqry lobeval lobfile lobloc lobval \
	makeapi migrate monreset monsz \
	nodecat \
	openftch \
	rebind rechist recursql restart \
	sampudf setact setrundg static sws \
	tabscont tabspace tabsql tbdefine tload trigsql tspace \
	updat \
	varinp


#****************************************************************************
#                  2f - nmake allremoteclient
#****************************************************************************

allremoteclient : \
	udfspclient \
	otherremoteclient

#****************************************************************************
#                  2g - nmake clean
#****************************************************************************

clean : \
	cleangen \
	cleanemb \
	cleanclisrv

cleangen :
	$(ERASE) *.obj *.ilk *.pdb *.map *.lib *.txt

cleanemb :
	$(ERASE) adhoc.c advsql.c asynrlog.c autocfg.c 
	$(ERASE) blobfile.c
	$(ERASE) columns.c cursor.c
	$(ERASE) dbauth.c dbstat.c delet.c dynamic.c 
	$(ERASE) expsamp.c
	$(ERASE) impexp.c
	$(ERASE) joinsql.c
	$(ERASE) loadqry.c lobeval.c lobfile.c lobloc.c lobval.c
	$(ERASE) makeapi.c
	$(ERASE) openftch.c
	$(ERASE) rebind.c rechist.c recursql.c
	$(ERASE) sampudf.c static.c
	$(ERASE) tabscont.c tabspace.c tabsql.c tbdefine.c tload.c trigsql.c tspace.c
	$(ERASE) updat.c utilemb.c udfcli.c
	$(ERASE) varinp.c

cleanclisrv :
	$(ERASE) calludf.c udfcli.c
	$(ERASE) udf.exp
	$(ERASE) udfsrv.exp
	$(ERASE) spserver.exp

	$(ERASE) spclient.c spserver.c

	$(ERASE) *.dll


#****************************************************************************
#                  2h - nmake cleanall
#****************************************************************************

cleanall : \
	clean
	$(ERASE) *.exe *.bnd


#############################################################################
#  3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES
#                  3a -  utilities
#                  3b -  non embedded SQL, non client/server samples
#                  3c -  embedded SQL, non client/server samples
#                  3d -  client/server samples (mixed)
#############################################################################



#****************************************************************************
#                  3a -  utilities
#****************************************************************************

utilapi.obj : utilapi.c
	$(CC) $(CFLAGS) utilapi.c

utilemb.c : utilemb.sqc
	embprep utilemb $(DB) $(UID) $(PWD)
utilemb.obj : utilemb.c
	$(CC) $(CFLAGS) utilemb.c

#****************************************************************************
#                  3b -  non embedded SQL, non client/server samples
#****************************************************************************

backrest.obj : backrest.c
	$(CC) $(CFLAGS) backrest.c
backrest : backrest.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:backrest.exe backrest.obj utilapi.obj $(LIBS)

cli_info.obj : cli_info.c
	$(CC) $(CFLAGS) cli_info.c
cli_info : cli_info.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:cli_info.exe cli_info.obj utilapi.obj $(LIBS)

client.obj : client.c
	$(CC) $(CFLAGS) client.c
client : client.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:client.exe client.obj utilapi.obj $(LIBS)

d_dbconf.obj : d_dbconf.c
	$(CC) $(CFLAGS) d_dbconf.c
d_dbconf : d_dbconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:d_dbconf.exe d_dbconf.obj utilapi.obj $(LIBS)

d_dbmcon.obj : d_dbmcon.c
	$(CC) $(CFLAGS) d_dbmcon.c
d_dbmcon : d_dbmcon.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:d_dbmcon.exe d_dbmcon.obj utilapi.obj $(LIBS)

db_udcs.obj : db_udcs.c
	$(CC) $(CFLAGS) db_udcs.c
db_udcs : db_udcs.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:db_udcs.exe db_udcs.obj utilapi.obj $(LIBS)

db2mon.obj : db2mon.c
	$(CC) $(CFLAGS) db2mon.c
db2mon : db2mon.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:db2mon.exe db2mon.obj utilapi.obj $(LIBS)

dbcat.obj : dbcat.c
	$(CC) $(CFLAGS) dbcat.c
dbcat : dbcat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbcat.exe dbcat.obj utilapi.obj $(LIBS)

dbcmt.obj : dbcmt.c
	$(CC) $(CFLAGS) dbcmt.c
dbcmt : dbcmt.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbcmt.exe dbcmt.obj utilapi.obj $(LIBS)

dbconf.obj : dbconf.c
	$(CC) $(CFLAGS) dbconf.c
dbconf : dbconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbconf.exe dbconf.obj utilapi.obj $(LIBS)

dbinst.obj : dbinst.c
	$(CC) $(CFLAGS) dbinst.c
dbinst : dbinst.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbinst.exe dbinst.obj utilapi.obj $(LIBS)

dbmconf.obj : dbmconf.c
	$(CC) $(CFLAGS) dbmconf.c
dbmconf : dbmconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbmconf.exe dbmconf.obj utilapi.obj $(LIBS)

dbsnap.obj : dbsnap.c
	$(CC) $(CFLAGS) dbsnap.c
dbsnap : dbsnap.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbsnap.exe dbsnap.obj utilapi.obj $(LIBS)

dbstart.obj : dbstart.c
	$(CC) $(CFLAGS) dbstart.c
dbstart : dbstart.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbstart.exe dbstart.obj utilapi.obj $(LIBS)

dbstop.obj : dbstop.c
	$(CC) $(CFLAGS) dbstop.c
dbstop : dbstop.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dbstop.exe dbstop.obj utilapi.obj $(LIBS)

dcscat.obj : dcscat.c
	$(CC) $(CFLAGS) dcscat.c
dcscat : dcscat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dcscat.exe dcscat.obj utilapi.obj $(LIBS)

dmscont.obj : dmscont.c
	$(CC) $(CFLAGS) dmscont.c
dmscont : dmscont.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:dmscont.exe dmscont.obj utilapi.obj $(LIBS)

ebcdicdb.obj : ebcdicdb.c
	$(CC) $(CFLAGS) ebcdicdb.c
ebcdicdb : ebcdicdb.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:ebcdicdb.exe ebcdicdb.obj utilapi.obj $(LIBS)

migrate.obj : migrate.c
	$(CC) $(CFLAGS) migrate.c
migrate : migrate.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:migrate.exe migrate.obj utilapi.obj $(LIBS)

monreset.obj : monreset.c
	$(CC) $(CFLAGS) monreset.c
monreset : monreset.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:monreset.exe monreset.obj utilapi.obj $(LIBS)

monsz.obj : monsz.c
	$(CC) $(CFLAGS) monsz.c
monsz   : monsz.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:monsz.exe monsz.obj utilapi.obj $(LIBS)

nodecat.obj : nodecat.c
	$(CC) $(CFLAGS) nodecat.c
nodecat : nodecat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:nodecat.exe nodecat.obj utilapi.obj $(LIBS)

restart.obj : restart.c
	$(CC) $(CFLAGS) restart.c
restart : restart.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:restart.exe restart.obj utilapi.obj $(LIBS)

setact.obj : setact.c
	$(CC) $(CFLAGS) setact.c
setact : setact.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:setact.exe setact.obj utilapi.obj $(LIBS)

setrundg.obj : setrundg.c
	$(CC) $(CFLAGS) setrundg.c
setrundg : setrundg.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:setrundg.exe setrundg.obj utilapi.obj $(LIBS)

sws.obj : sws.c
	$(CC) $(CFLAGS) sws.c
sws    : sws.obj utilapi.obj
	$(LINK) $(LINKFLAGS) -out:sws.exe sws.obj utilapi.obj $(LIBS)

#****************************************************************************
#                  3c -  embedded SQL non client/server samples
#****************************************************************************

adhoc.c : adhoc.sqc
	embprep adhoc $(DB) $(UID) $(PWD)
adhoc.obj : adhoc.c
	$(CC) $(CFLAGS) adhoc.c
adhoc : adhoc.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:adhoc.exe adhoc.obj utilemb.obj $(LIBS)

advsql.c : advsql.sqc
	embprep advsql $(DB) $(UID) $(PWD)
advsql.obj : advsql.c
	$(CC) $(CFLAGS) advsql.c
advsql : advsql.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:advsql.exe advsql.obj utilemb.obj $(LIBS)

asynrlog.c : asynrlog.sqc
	embprep asynrlog $(DB) $(UID) $(PWD)
asynrlog.obj : asynrlog.c
	$(CC) $(CFLAGS) asynrlog.c
asynrlog : asynrlog.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:asynrlog.exe asynrlog.obj utilemb.obj $(LIBS)

autocfg.c : autocfg.sqc
	embprep autocfg $(DB) $(UID) $(PWD)
autocfg.obj : autocfg.c
	$(CC) $(CFLAGS) autocfg.c
autocfg : autocfg.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:autocfg.exe autocfg.obj utilemb.obj $(LIBS)

blobfile.c : blobfile.sqc
	embprep blobfile $(DB) $(UID) $(PWD)
blobfile.obj : blobfile.c
	$(CC) $(CFLAGS) blobfile.c
blobfile : blobfile.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:blobfile.exe blobfile.obj utilemb.obj $(LIBS)

columns.c : columns.sqc
	embprep columns $(DB) $(UID) $(PWD)
columns.obj : columns.c
	$(CC) $(CFLAGS) columns.c
columns : columns.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:columns.exe columns.obj utilemb.obj $(LIBS)

cursor.c : cursor.sqc
	embprep cursor $(DB) $(UID) $(PWD)
cursor.obj : cursor.c
	$(CC) $(CFLAGS) cursor.c
cursor : cursor.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:cursor.exe cursor.obj utilemb.obj $(LIBS)

dbauth.c : dbauth.sqc
	embprep dbauth $(DB) $(UID) $(PWD)
dbauth.obj : dbauth.c
	$(CC) $(CFLAGS) dbauth.c
dbauth : dbauth.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:dbauth.exe dbauth.obj utilemb.obj $(LIBS)

dbstat.c : dbstat.sqc
	embprep dbstat $(DB) $(UID) $(PWD)
dbstat.obj : dbstat.c
	$(CC) $(CFLAGS) dbstat.c
dbstat : dbstat.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:dbstat.exe dbstat.obj utilemb.obj $(LIBS)

delet.c : delet.sqc
	embprep delet $(DB) $(UID) $(PWD)
delet.obj : delet.c
	$(CC) $(CFLAGS) delet.c
delet : delet.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:delet.exe delet.obj utilemb.obj $(LIBS)

dynamic.c : dynamic.sqc
	embprep dynamic $(DB) $(UID) $(PWD)
dynamic.obj : dynamic.c
	$(CC) $(CFLAGS) dynamic.c
dynamic : dynamic.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:dynamic.exe dynamic.obj utilemb.obj $(LIBS)

expsamp.c : expsamp.sqc
	embprep expsamp $(DB) $(UID) $(PWD)
expsamp.obj : expsamp.c
	$(CC) $(CFLAGS) expsamp.c
expsamp : expsamp.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:expsamp.exe expsamp.obj utilemb.obj $(LIBS)

impexp.c : impexp.sqc
	embprep impexp $(DB) $(UID) $(PWD)
impexp.obj : impexp.c
	$(CC) $(CFLAGS) impexp.c
impexp : impexp.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:impexp.exe impexp.obj utilemb.obj $(LIBS)

joinsql.c : joinsql.sqc
	embprep joinsql $(DB) $(UID) $(PWD)
joinsql.obj : joinsql.c
	$(CC) $(CFLAGS) joinsql.c
joinsql : joinsql.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:joinsql.exe joinsql.obj utilemb.obj $(LIBS)

loadqry.c : loadqry.sqc
	embprep loadqry $(DB) $(UID) $(PWD)
loadqry.obj : loadqry.c
	$(CC) $(CFLAGS) loadqry.c
loadqry : loadqry.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:loadqry.exe loadqry.obj utilemb.obj $(LIBS)

lobeval.c : lobeval.sqc
	embprep lobeval $(DB) $(UID) $(PWD)
lobeval.obj : lobeval.c
	$(CC) $(CFLAGS) lobeval.c
lobeval : lobeval.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:lobeval.exe lobeval.obj utilemb.obj $(LIBS)

lobfile.c : lobfile.sqc
	embprep lobfile $(DB) $(UID) $(PWD)
lobfile.obj : lobfile.c
	$(CC) $(CFLAGS) lobfile.c
lobfile : lobfile.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:lobfile.exe lobfile.obj utilemb.obj $(LIBS)

lobloc.c : lobloc.sqc
	embprep lobloc $(DB) $(UID) $(PWD)
lobloc.obj : lobloc.c
	$(CC) $(CFLAGS) lobloc.c
lobloc : lobloc.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:lobloc.exe lobloc.obj utilemb.obj $(LIBS)

lobval.c : lobval.sqc
	embprep lobval $(DB) $(UID) $(PWD)
lobval.obj : lobval.c
	$(CC) $(CFLAGS) lobval.c
lobval : lobval.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:lobval.exe lobval.obj utilemb.obj $(LIBS)

makeapi.c : makeapi.sqc
	embprep makeapi $(DB) $(UID) $(PWD)
makeapi.obj : makeapi.c
	$(CC) $(CFLAGS) makeapi.c
makeapi : makeapi.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:makeapi.exe makeapi.obj utilemb.obj $(LIBS)

openftch.c : openftch.sqc
	embprep openftch $(DB) $(UID) $(PWD)
openftch.obj : openftch.c
	$(CC) $(CFLAGS) openftch.c
openftch : openftch.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:openftch.exe openftch.obj utilemb.obj $(LIBS)

rebind.c : rebind.sqc
	embprep rebind $(DB) $(UID) $(PWD)
rebind.obj : rebind.c
	$(CC) $(CFLAGS) rebind.c
rebind : rebind.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:rebind.exe rebind.obj utilemb.obj $(LIBS)

rechist.c : rechist.sqc
	embprep rechist $(DB) $(UID) $(PWD)
rechist.obj : rechist.c
	$(CC) $(CFLAGS) rechist.c
rechist : rechist.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:rechist.exe rechist.obj utilemb.obj $(LIBS)

recursql.c : recursql.sqc
	embprep recursql $(DB) $(UID) $(PWD)
recursql.obj : recursql.c
	$(CC) $(CFLAGS) recursql.c
recursql : recursql.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:recursql.exe recursql.obj utilemb.obj $(LIBS)

sampudf.c : sampudf.sqc
	embprep sampudf $(DB) $(UID) $(PWD)
sampudf.obj : sampudf.c
	$(CC) $(CFLAGS) sampudf.c
sampudf : sampudf.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:sampudf.exe sampudf.obj utilemb.obj $(LIBS)

static.c : static.sqc
	embprep static $(DB) $(UID) $(PWD)
static.obj : static.c
	$(CC) $(CFLAGS) static.c
static : static.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:static.exe static.obj utilemb.obj $(LIBS)

tabscont.c : tabscont.sqc
	embprep tabscont $(DB) $(UID) $(PWD)
tabscont.obj : tabscont.c
	$(CC) $(CFLAGS) tabscont.c
tabscont : tabscont.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tabscont.exe tabscont.obj utilemb.obj $(LIBS)

tabspace.c : tabspace.sqc
	embprep tabspace $(DB) $(UID) $(PWD)
tabspace.obj : tabspace.c
	$(CC) $(CFLAGS) tabspace.c
tabspace : tabspace.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tabspace.exe tabspace.obj utilemb.obj $(LIBS)

tabsql.c : tabsql.sqc
	embprep tabsql $(DB) $(UID) $(PWD)
tabsql.obj : tabsql.c
	$(CC) $(CFLAGS) tabsql.c
tabsql : tabsql.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tabsql.exe tabsql.obj utilemb.obj $(LIBS)

tbdefine.c : tbdefine.sqc
	embprep tbdefine $(DB) $(UID) $(PWD)
tbdefine.obj : tbdefine.c
	$(CC) $(CFLAGS) tbdefine.c
tbdefine : tbdefine.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tbdefine.exe tbdefine.obj utilemb.obj $(LIBS)

tload.c : tload.sqc
	embprep tload $(DB) $(UID) $(PWD)
tload.obj : tload.c
	$(CC) $(CFLAGS) tload.c
tload : tload.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tload.exe tload.obj utilemb.obj $(LIBS)

trigsql.c : trigsql.sqc
	embprep trigsql $(DB) $(UID) $(PWD)
trigsql.obj : trigsql.c
	$(CC) $(CFLAGS) trigsql.c
trigsql : trigsql.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:trigsql.exe trigsql.obj utilemb.obj $(LIBS)

tspace.c : tspace.sqc
	embprep tspace $(DB) $(UID) $(PWD)
tspace.obj : tspace.c
	$(CC) $(CFLAGS) tspace.c
tspace : tspace.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:tspace.exe tspace.obj utilemb.obj $(LIBS)

updat.c : updat.sqc
	embprep updat $(DB) $(UID) $(PWD)
updat.obj : updat.c
	$(CC) $(CFLAGS) updat.c
updat : updat.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:updat.exe updat.obj utilemb.obj $(LIBS)

varinp.c : varinp.sqc
	embprep varinp $(DB) $(UID) $(PWD)
varinp.obj : varinp.c
	$(CC) $(CFLAGS) varinp.c
varinp : varinp.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:varinp.exe varinp.obj utilemb.obj $(LIBS)


#****************************************************************************
#                  3d -  client/server samples (mixed)   
#****************************************************************************

#--------------------calludf/udf--------------------------------------------#

calludf.c : calludf.sqc
	embprep calludf $(DB) $(UID) $(PWD)
calludf.obj : calludf.c
	$(CC) $(CFLAGS) calludf.c
calludf : calludf.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:calludf.exe calludf.obj utilemb.obj $(LIBS)

udf.obj : udf.c
	$(CC) $(CFLAGSSRV) udf.c
udf     : udf.obj
!IF "$(COMPILER)" == "MS"
	$(LINK) $(LINKFLAGS1) -out:udf.dll udf.obj $(LIBS1) -def:udf.def
!ELSE
	ilib /GI udfva.def
	$(LINK) $(LINKFLAGS1) udf.obj udf.exp $(LIBS1)
!ENDIF
	$(ERASE) "$(DB2PATH)\function\udf.dll"
	copy udf.dll "$(DB2PATH)\function"

#--------------------udfcli/udfsrv------------------------------------------#

udfcli.c : udfcli.sqc
	embprep udfcli $(DB) $(UID) $(PWD)
udfcli.obj : udfcli.c
	$(CC) $(CFLAGS) udfcli.c
udfcli : udfcli.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:udfcli.exe udfcli.obj utilemb.obj $(LIBS)

udfsrv.obj : udfsrv.c
	$(CC) $(CFLAGSSRV) udfsrv.c
udfsrv     : udfsrv.obj
!IF "$(COMPILER)" == "MS"
	$(LINK) $(LINKFLAGS1) -out:udfsrv.dll udfsrv.obj $(LIBS1) -def:udfsrv.def
!ELSE
	ilib /GI udfsrvva.def
	$(LINK) $(LINKFLAGS1) udfsrv.obj udfsrv.exp $(LIBS1)
!ENDIF
	copy udfsrv.dll "$(DB2PATH)\function"

#--------------------spclient/spserver--------------------------------------#

spclient.c : spclient.sqc
	embprep spclient $(DB) $(UID) $(PWD)
spclient.obj : spclient.c
	$(CC) $(CFLAGS) spclient.c
spclient : spclient.obj utilemb.obj
	$(LINK) $(LINKFLAGS) -out:spclient.exe spclient.obj utilemb.obj $(LIBS)

spserver.c : spserver.sqc
	embprep spserver $(DB) $(UID) $(PWD)
spserver.obj : spserver.c
	$(CC) $(CFLAGSSRV) spserver.c
spserver : spserver.obj
!IF "$(COMPILER)" == "MS"
	$(LINK) $(LINKFLAGS1) -out:spserver.dll spserver.obj $(LIBS) -def:spserver.def
!ELSE
	ilib /GI spserverva.def
	$(LINK) $(LINKFLAGS1) spserver.obj spserver.exp $(LIBS)
!ENDIF
	$(ERASE) "$(DB2PATH)\function\spserver.dll"
	copy spserver.dll "$(DB2PATH)\function"