#  (C) COPYRIGHT International Business Machines Corp. 1995, 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 -- OS/2 operating system
                         

# 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                                     
##################################################################################

# Compiler and linker definitions for IBM VisualAge C++ compiler.
CC=icc
CFLAGS=-C+ -O- -Ti+
SRVCFLAGS=-C+ -Ti+ -Ge- -Gm+ -W2
LINK=ilink 
LINKFLAGS=/NOFREE /NOI /DEBUG /ST:64000 /PM:VIO

LIBS=$(DB2PATH)\lib\db2api.lib
UDFLIBS=$(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 tload trigsql tspace \
	updat \
	varinp


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

allremoteclient : \
	udfspclient \
	otherremoteclient

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

clean :	\
	cleangen \
	cleanemb 

cleangen :
	- $(ERASE) *.obj *.map *.dll *.lib

cleanemb :
	- $(ERASE) adhoc.c advsql.c asynrlog.c autocfg.c  
	- $(ERASE) bindfile.c blobfile.c
	- $(ERASE) calludf.c 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 spclient.c spserver.c
	- $(ERASE) tabscont.c tabspace.c tabsql.c
	- $(ERASE) tload.c trigsql.c tspace.c
	- $(ERASE) udfcli.c updat.c
	- $(ERASE) varinp.c

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

cleanall : \
	clean
	- $(ERASE) *.exe *.bnd
	- $(ERASE) $(DB2PATH)\function\udf.dll
	- $(ERASE) $(DB2PATH)\function\udfsrv.dll
	- $(ERASE) $(DB2PATH)\function\spserver.dll



#############################################################################
#  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) backrest.obj utilapi.obj, backrest.exe,,$(LIBS);

cli_info.obj : cli_info.c
	$(CC) $(CFLAGS) cli_info.c
cli_info : cli_info.obj utilapi.obj
	$(LINK) $(LINKFLAGS) cli_info.obj utilapi.obj, cli_info.exe,,$(LIBS);

client.obj : client.c
	$(CC) $(CFLAGS) client.c
client : client.obj utilapi.obj
	$(LINK) $(LINKFLAGS) client.obj utilapi.obj, client.exe,,$(LIBS);

d_dbconf.obj : d_dbconf.c
	$(CC) $(CFLAGS) d_dbconf.c
d_dbconf : d_dbconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) d_dbconf.obj utilapi.obj, d_dbconf.exe,,$(LIBS);

d_dbmcon.obj : d_dbmcon.c
	$(CC) $(CFLAGS) d_dbmcon.c
d_dbmcon : d_dbmcon.obj utilapi.obj
	$(LINK) $(LINKFLAGS) d_dbmcon.obj utilapi.obj, d_dbmcon.exe,,$(LIBS);

db_udcs.obj : db_udcs.c
	$(CC) $(CFLAGS) db_udcs.c
db_udcs : db_udcs.obj utilapi.obj
	$(LINK) $(LINKFLAGS) db_udcs.obj utilapi.obj, db_udcs.exe,,$(LIBS);

db2mon.obj : db2mon.c
	$(CC) $(CFLAGS) db2mon.c
db2mon : db2mon.obj utilapi.obj
	$(LINK) $(LINKFLAGS) db2mon.obj utilapi.obj, db2mon.exe,,$(LIBS);

dbcat.obj : dbcat.c
	$(CC) $(CFLAGS) dbcat.c
dbcat : dbcat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbcat.obj utilapi.obj, dbcat.exe,,$(LIBS);

dbcmt.obj : dbcmt.c
	$(CC) $(CFLAGS) dbcmt.c
dbcmt : dbcmt.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbcmt.obj utilapi.obj, dbcmt.exe,,$(LIBS);

dbconf.obj : dbconf.c
	$(CC) $(CFLAGS) dbconf.c
dbconf : dbconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbconf.obj utilapi.obj, dbconf.exe,,$(LIBS);

dbinst.obj : dbinst.c
	$(CC) $(CFLAGS) dbinst.c
dbinst : dbinst.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbinst.obj utilapi.obj, dbinst.exe,,$(LIBS);

dbmconf.obj : dbmconf.c
	$(CC) $(CFLAGS) dbmconf.c
dbmconf : dbmconf.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbmconf.obj utilapi.obj, dbmconf.exe,,$(LIBS);

dbsnap.obj : dbsnap.c
	$(CC) $(CFLAGS) dbsnap.c
dbsnap : dbsnap.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbsnap.obj utilapi.obj, dbsnap.exe,,$(LIBS);

dbstart.obj : dbstart.c
	$(CC) $(CFLAGS) dbstart.c
dbstart : dbstart.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbstart.obj utilapi.obj, dbstart.exe,,$(LIBS);

dbstop.obj : dbstop.c
	$(CC) $(CFLAGS) dbstop.c
dbstop : dbstop.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dbstop.obj utilapi.obj, dbstop.exe,,$(LIBS);

dcscat.obj : dcscat.c
	$(CC) $(CFLAGS) dcscat.c
dcscat : dcscat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dcscat.obj utilapi.obj, dcscat.exe,,$(LIBS);

dmscont.obj : dmscont.c
	$(CC) $(CFLAGS) dmscont.c
dmscont : dmscont.obj utilapi.obj
	$(LINK) $(LINKFLAGS) dmscont.obj utilapi.obj, dmscont.exe,,$(LIBS);

ebcdicdb.obj : ebcdicdb.c
	$(CC) $(CFLAGS) ebcdicdb.c
ebcdicdb : ebcdicdb.obj utilapi.obj
	$(LINK) $(LINKFLAGS) ebcdicdb.obj utilapi.obj, ebcdicdb.exe,,$(LIBS);

migrate.obj : migrate.c
	$(CC) $(CFLAGS) migrate.c
migrate : migrate.obj utilapi.obj
	$(LINK) $(LINKFLAGS) migrate.obj utilapi.obj, migrate.exe,,$(LIBS);

monreset.obj : monreset.c
	$(CC) $(CFLAGS) monreset.c
monreset : monreset.obj utilapi.obj
	$(LINK) $(LINKFLAGS) monreset.obj utilapi.obj, monreset.exe,,$(LIBS);

monsz.obj : monsz.c
	$(CC) $(CFLAGS) monsz.c
monsz : monsz.obj utilapi.obj
	$(LINK) $(LINKFLAGS) monsz.obj utilapi.obj, monsz.exe,,$(LIBS);

nodecat.obj : nodecat.c
	$(CC) $(CFLAGS) nodecat.c
nodecat : nodecat.obj utilapi.obj
	$(LINK) $(LINKFLAGS) nodecat.obj utilapi.obj, nodecat.exe,,$(LIBS);

restart.obj : restart.c
	$(CC) $(CFLAGS) restart.c
restart : restart.obj utilapi.obj
	$(LINK) $(LINKFLAGS) restart.obj utilapi.obj, restart.exe,,$(LIBS);

setact.obj : setact.c
	$(CC) $(CFLAGS) setact.c
setact : setact.obj utilapi.obj
	$(LINK) $(LINKFLAGS) setact.obj utilapi.obj, setact.exe,,$(LIBS);

setrundg.obj : setrundg.c
	$(CC) $(CFLAGS) setrundg.c
setrundg : setrundg.obj utilapi.obj
	$(LINK) $(LINKFLAGS) setrundg.obj utilapi.obj, setrundg.exe,,$(LIBS);

sws.obj : sws.c
	$(CC) $(CFLAGS) sws.c
sws : sws.obj utilapi.obj
	$(LINK) $(LINKFLAGS) sws.obj utilapi.obj, sws.exe,,$(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) adhoc.obj utilemb.obj, adhoc.exe,,$(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) advsql.obj utilemb.obj, advsql.exe,,$(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) asynrlog.obj utilemb.obj, asynrlog.exe,,$(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) autocfg.obj utilemb.obj, autocfg.exe,,$(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) blobfile.obj utilemb.obj, blobfile.exe,,$(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) columns.obj utilemb.obj, columns.exe,,$(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) cursor.obj utilemb.obj, cursor.exe,,$(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) dbauth.obj utilemb.obj, dbauth.exe,,$(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) dbstat.obj utilemb.obj, dbstat.exe,,$(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) delet.obj utilemb.obj, delet.exe,,$(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) dynamic.obj utilemb.obj, dynamic.exe,,$(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) expsamp.obj utilemb.obj, expsamp.exe,,$(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) impexp.obj utilemb.obj, impexp.exe,,$(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) joinsql.obj utilemb.obj, joinsql.exe,,$(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) loadqry.obj utilemb.obj, loadqry.exe,,$(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) lobeval.obj utilemb.obj, lobeval.exe,,$(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) lobfile.obj utilemb.obj, lobfile.exe,,$(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) lobloc.obj utilemb.obj, lobloc.exe,,$(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) lobval.obj utilemb.obj, lobval.exe,,$(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) makeapi.obj utilemb.obj, makeapi.exe,,$(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) openftch.obj utilemb.obj, openftch.exe,,$(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) rebind.obj utilemb.obj, rebind.exe,,$(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) rechist.obj utilemb.obj, rechist.exe,,$(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) recursql.obj utilemb.obj, recursql.exe,,$(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) sampudf.obj utilemb.obj, sampudf.exe,,$(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) static.obj utilemb.obj, static.exe,,$(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) tabscont.obj utilemb.obj, tabscont.exe,,$(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) tabspace.obj utilemb.obj, tabspace.exe,,$(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) tabsql.obj utilemb.obj, tabsql.exe,,$(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) tload.obj utilemb.obj, tload.exe,,$(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) trigsql.obj utilemb.obj, trigsql.exe,,$(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) tspace.obj utilemb.obj, tspace.exe,,$(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) updat.obj utilemb.obj, updat.exe,,$(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) varinp.obj utilemb.obj, varinp.exe,,$(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) calludf.obj utilemb.obj, calludf.exe,,$(LIBS);

udf.obj : udf.c
	$(CC) $(SRVCFLAGS) udf.c
udf     : udf.obj
	$(LINK) $(LINKFLAGS) /MAP udf.obj,udf.dll,,$(UDFLIBS),udf.def;
	$(COPY) udf.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) spclient.obj utilemb.obj, spclient.exe,,$(LIBS);

spserver.c : spserver.sqc
	embprep spserver $(DB) $(UID) $(PWD)
spserver.obj : spserver.c
	$(CC) $(SRVCFLAGS) spserver.c
spserver : spserver.obj
	$(LINK) $(LINKFLAGS) /MAP spserver.obj,spserver.dll,,$(LIBS),spserver.def;
	$(COPY) spserver.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) udfcli.obj utilemb.obj, udfcli.exe,,$(LIBS);

udfsrv.obj : udfsrv.c
	$(CC) $(SRVCFLAGS) udfsrv.c
udfsrv     : udfsrv.obj
	$(LINK) $(LINKFLAGS) /MAP udfsrv.obj,udfsrv.dll,,$(UDFLIBS),udfsrv.def;
	$(COPY) udfsrv.dll $(DB2PATH)\function