#  (C) COPYRIGHT International Business Machines Corp. 1995, 1999
#  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 Version 6.1
# CLI 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 udfspclient       - Builds the examples that call stored 
#                            procedures and UDFs ( they can run remotely )
#  nmake otherclient       - Builds the examples that will run successfully
#                            on a client platform ( others than udfspclient )
#  nmake allclient         - Builds programs in udfspclient and otherclient
#                            categories
#
#  nmake clean             - Erases intermediate files
#  nmake cleanall          - Erases all files produced in the build process,
#                            except the original source files
#----------------------------------------------------------------------------
#  nmake o_all             - Builds the all the supplied sample programs
#                            for the ORDER scenario
#  nmake o_udfspserver     - Builds the examples that implement
#                            stored procedures and UDFs (on the server)
#                            for the ORDER scenario
#  nmake o_udfspclient     - Builds the examples that call stored 
#                            procedures and UDFs ( they can run remotely )
#                            for the ORDER scenario
#  nmake o_otherclient     - Builds the examples that will run successfully
#                            on a client platform ( others than udfspclient )
#                            for the ORDER scenario
#  nmake o_allclient       - Builds programs in o_udfspclient and
#                            o_otherclient categories
#----------------------------------------------------------------------------
#  nmake v2all             - Builds the all DB2 Version 2 supplied
#                            sample programs
#----------------------------------------------------------------------------


# 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.
makefile.htm#make_cl">CFLAGS=-Z7 -Od -c -W2 -D_X86_=1 -DWIN32 -I:$(DB2PATH)\include
LFLAGS=-debug:full -debugtype:cv
LFLAGSSRV=-debug:full -debugtype:cv -dll
!ENDIF

!IF "$(COMPILER)" == "IBM"
# IBM VisualAge C++ compiler
CC=icc
LINK=ilink
makefile.htm#make_cl">CFLAGS=-c -Ti -W1
makefile.htm#make_cl">CFLAGSSRV=-c+ -Ti -Ge- -Gm+ -W1
LFLAGS=/MAP /DEBUG /ST:64000 /PM:VIO
LFLAGSSRV=/MAP /DEBUG /ST:64000 /PM:VIO /DLL
!ENDIF

LIBS=$(DB2PATH)\lib\db2cli.lib
LIBSAPI=$(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(= allclient + udfspserver)
#              2b - nmake udfspserver
#              2c - nmake udfspclient
#              2d - nmake otherclient
#              2e - nmake allclient(= udfspclient + otherclient)
#
#              2f - nmake o_all(= o_udfspserver + o_allclient)
#              2g - nmake o_udfspserver
#              2h - nmake o_udfspclient
#              2i - nmake o_otherclient
#              2j - nmake o_allclient(= o_udfspclient + o_allclient)
#
#              2k - nmake v2all
#
#              2l - nmake clean
#              2m - nmake cleanall
#############################################################################


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

all : \
	allclient \
	udfspserver

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

udfspserver : \
	o_udfspserver \
	inpsrv2 \
	mrspsrv \
	mrspsrv2 \
	outsrv2 \
	showda \
	udf samputil

#****************************************************************************
#                  2c - nmake udfspclient 
#****************************************************************************

udfspclient : \
	o_udfspclient \
	calludf \
	inpcli \
	inpcli2 \
	mrspcli \
	mrspcli2 \
	mrspcli3 \
	outcli \
	outcli2 \
	sendda

#****************************************************************************
#                  2d - nmake otherclient
#****************************************************************************

otherclient : \
	o_otherclient \
	v2all \
	adhoc async \
	basiccon browser \
	clisampl colpriv columns compnd \
	datasour descrptr drivrcon duowcon \
	embedded \
	fetch \
	getattrs getcurs getdata getfuncs getinfo getsqlca \
	lookres \
	mixed multicon \
	native \
	picin picin2 prepare proccols procs \
	setcolat setcurs seteattr sfetch showpic showpic2 \
	tables typeinfo \
	xfetch 

#****************************************************************************
#                  2e - nmake allclient(= udfspclient + otherclient)
#****************************************************************************

allclient : \
	udfspclient \
	otherclient

#****************************************************************************
#                  2f - nmake o_all(= o_udfspserver + o_allclient)
#****************************************************************************

o_all : \
	o_allclient \
	o_udfspserver

#****************************************************************************
#                  2g - nmake o_udfspserver
#****************************************************************************

o_udfspserver : \
	order

#****************************************************************************
#                  2h - nmake o_udfspclient 
#****************************************************************************

o_udfspclient : \
	ordin

#****************************************************************************
#                  2i - nmake o_otherclient
#****************************************************************************

o_otherclient : \
	create \
	custin \
	dropcli \
	ordrep \
	partrep \
	prodin \
	prodpart 

#****************************************************************************
#                 2j - nmake o_allclient(= o_udfspclient + o_allclient)
#****************************************************************************
# Run he following samples in the following order 
o_allclient : \
	create \
	custin \
	prodin \
	prodpart \
	ordin \
	ordrep \
	partrep \
	dropcli	

#****************************************************************************
#                  2k - nmake v2all
#****************************************************************************

v2all : \
	v2fetch \
	v2xfetch

#****************************************************************************
#                  2l - nmake clean
#****************************************************************************

clean :	\
	cleangen \
	cleanemb \
	cleanexp

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

cleanemb :
	$(ERASE) mixed.c mrspcli3.c mrspsrv2.c 

cleanexp :
	$(ERASE) inpsrv2.exp
	$(ERASE) inpsrv2va.exp

	$(ERASE) mrspsrv.exp
	$(ERASE) mrspsrvva.exp

	$(ERASE) mrspsrv2.exp
	$(ERASE) mrspsrv2va.exp

	$(ERASE) order.exp
	$(ERASE) orderva.exp

	$(ERASE) outsrv2.exp
	$(ERASE) outsrv2va.exp

	$(ERASE) showda.exp
	$(ERASE) showdava.exp

	$(ERASE) udf.exp
	$(ERASE) udfva.exp

#****************************************************************************
#                  2m - nmake cleanall
#****************************************************************************

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

	$(ERASE) $(DB2PATH)\function\inpsrv2.dll
	$(ERASE) $(DB2PATH)\function\mrspsrv.dll
	$(ERASE) $(DB2PATH)\function\mrspsrv2.dll
	$(ERASE) $(DB2PATH)\function\order.dll
	$(ERASE) $(DB2PATH)\function\outsrv2.dll
	$(ERASE) $(DB2PATH)\function\showda.dll
	$(ERASE) $(DB2PATH)\function\udf.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)
#                  3e -  samples for the ORDER scenario
#                  3f -  DB2 Version 2 samples
#############################################################################



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

samputil :
	$(CC) samputil.c $(makefile.htm#make_cl">CFLAGS)

samputil.obj :
	$(CC) samputil.c $(makefile.htm#make_cl">CFLAGS)

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

adhoc.obj : adhoc.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) adhoc.c
adhoc : adhoc.obj samputil.obj
	$(LINK) $(LFLAGS) -out:adhoc.exe adhoc.obj samputil.obj $(LIBS)

async.obj : async.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) async.c
async : async.obj samputil.obj
	$(LINK) $(LFLAGS) -out:async.exe async.obj samputil.obj $(LIBS)

basiccon.obj : basiccon.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) basiccon.c
basiccon : basiccon.obj samputil.obj
	$(LINK) $(LFLAGS) -out:basiccon.exe basiccon.obj samputil.obj $(LIBS)

browser.obj : browser.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) browser.c
browser : browser.obj samputil.obj
	$(LINK) $(LFLAGS) -out:browser.exe browser.obj samputil.obj $(LIBS)

clisampl.obj : clisampl.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) clisampl.c
clisampl : clisampl.obj samputil.obj
	$(LINK) $(LFLAGS) -out:clisampl.exe clisampl.obj samputil.obj $(LIBS)

colpriv.obj : colpriv.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) colpriv.c
colpriv : colpriv.obj samputil.obj
	$(LINK) $(LFLAGS) -out:colpriv.exe colpriv.obj samputil.obj $(LIBS)

columns.obj : columns.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) columns.c
columns : columns.obj samputil.obj
	$(LINK) $(LFLAGS) -out:columns.exe columns.obj samputil.obj $(LIBS)

compnd.obj : compnd.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) compnd.c
compnd : compnd.obj samputil.obj
	$(LINK) $(LFLAGS) -out:compnd.exe compnd.obj samputil.obj $(LIBS)

datasour.obj : datasour.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) datasour.c
datasour : datasour.obj samputil.obj
	$(LINK) $(LFLAGS) -out:datasour.exe datasour.obj samputil.obj $(LIBS)

descrptr.obj : descrptr.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) descrptr.c
descrptr : descrptr.obj samputil.obj
	$(LINK) $(LFLAGS) -out:descrptr.exe descrptr.obj samputil.obj $(LIBS)

drivrcon.obj : drivrcon.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) drivrcon.c
drivrcon : drivrcon.obj samputil.obj
	$(LINK) $(LFLAGS) -out:drivrcon.exe drivrcon.obj samputil.obj $(LIBS)

duowcon.obj : duowcon.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) duowcon.c
duowcon : duowcon.obj samputil.obj
	$(LINK) $(LFLAGS) -out:duowcon.exe duowcon.obj samputil.obj $(LIBS)

embedded.obj : embedded.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) embedded.c
embedded : embedded.obj samputil.obj
	$(LINK) $(LFLAGS) -out:embedded.exe embedded.obj samputil.obj $(LIBS)

fetch.obj : fetch.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) fetch.c
fetch : fetch.obj samputil.obj
	$(LINK) $(LFLAGS) -out:fetch.exe fetch.obj samputil.obj $(LIBS)

getattrs.obj : getattrs.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getattrs.c
getattrs : getattrs.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getattrs.exe getattrs.obj samputil.obj $(LIBS)

getcurs.obj : getcurs.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getcurs.c
getcurs : getcurs.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getcurs.exe getcurs.obj samputil.obj $(LIBS)

getdata.obj : getdata.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getdata.c
getdata : getdata.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getdata.exe getdata.obj samputil.obj $(LIBS)

getfuncs.obj : getfuncs.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getfuncs.c
getfuncs : getfuncs.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getfuncs.exe getfuncs.obj samputil.obj $(LIBS)

getinfo.obj : getinfo.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getinfo.c
getinfo : getinfo.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getinfo.exe getinfo.obj samputil.obj $(LIBS)

getsqlca.obj : getsqlca.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) getsqlca.c
getsqlca : getsqlca.obj samputil.obj
	$(LINK) $(LFLAGS) -out:getsqlca.exe getsqlca.obj samputil.obj $(LIBS)

lookres.obj : lookres.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) lookres.c
lookres : lookres.obj samputil.obj
	$(LINK) $(LFLAGS) -out:lookres.exe lookres.obj samputil.obj $(LIBS)

multicon.obj : multicon.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) multicon.c
multicon : multicon.obj samputil.obj
	$(LINK) $(LFLAGS) -out:multicon.exe multicon.obj samputil.obj $(LIBS)

native.obj : native.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) native.c
native : native.obj samputil.obj
	$(LINK) $(LFLAGS) -out:native.exe native.obj samputil.obj $(LIBS)

picin.obj : picin.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) picin.c
picin : picin.obj samputil.obj
	$(LINK) $(LFLAGS) -out:picin.exe picin.obj samputil.obj $(LIBS)

picin2.obj : picin2.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) picin2.c
picin2 : picin2.obj samputil.obj
	$(LINK) $(LFLAGS) -out:picin2.exe picin2.obj samputil.obj $(LIBS)

prepare.obj : prepare.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) prepare.c
prepare : prepare.obj samputil.obj
	$(LINK) $(LFLAGS) -out:prepare.exe prepare.obj samputil.obj $(LIBS)

proccols.obj : proccols.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) proccols.c
proccols : proccols.obj samputil.obj
	$(LINK) $(LFLAGS) -out:proccols.exe proccols.obj samputil.obj $(LIBS)

procs.obj : procs.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) procs.c
procs : procs.obj samputil.obj
	$(LINK) $(LFLAGS) -out:procs.exe procs.obj samputil.obj $(LIBS)

setcolat.obj : setcolat.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) setcolat.c
setcolat : setcolat.obj samputil.obj
	$(LINK) $(LFLAGS) -out:setcolat.exe setcolat.obj samputil.obj $(LIBS)

setcurs.obj : setcurs.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) setcurs.c
setcurs : setcurs.obj samputil.obj
	$(LINK) $(LFLAGS) -out:setcurs.exe setcurs.obj samputil.obj $(LIBS)

seteattr.obj : seteattr.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) seteattr.c
seteattr : seteattr.obj samputil.obj
	$(LINK) $(LFLAGS) -out:seteattr.exe seteattr.obj samputil.obj $(LIBS)

sfetch.obj : sfetch.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) sfetch.c
sfetch : sfetch.obj samputil.obj
	$(LINK) $(LFLAGS) -out:sfetch.exe sfetch.obj samputil.obj $(LIBS)

showpic.obj : showpic.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) showpic.c
showpic : showpic.obj samputil.obj
	$(LINK) $(LFLAGS) -out:showpic.exe showpic.obj samputil.obj $(LIBS)

showpic2.obj : showpic2.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) showpic2.c
showpic2 : showpic2.obj samputil.obj
	$(LINK) $(LFLAGS) -out:showpic2.exe showpic2.obj samputil.obj $(LIBS)

tables.obj : tables.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) tables.c
tables : tables.obj samputil.obj
	$(LINK) $(LFLAGS) -out:tables.exe tables.obj samputil.obj $(LIBS)

typeinfo.obj : typeinfo.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) typeinfo.c
typeinfo : typeinfo.obj samputil.obj
	$(LINK) $(LFLAGS) -out:typeinfo.exe typeinfo.obj samputil.obj $(LIBS)

xfetch.obj : xfetch.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) xfetch.c
xfetch : xfetch.obj samputil.obj
	$(LINK) $(LFLAGS) -out:xfetch.exe xfetch.obj samputil.obj $(LIBS)

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


mixed.c : mixed.sqc
	cliprep mixed $(DB) $(UID) $(PWD)
mixed.obj : mixed.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) mixed.c
mixed : mixed.obj samputil.obj
	$(LINK) $(LFLAGS) -out:mixed.exe mixed.obj samputil.obj \
	$(LIBS) $(LIBSAPI)


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

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

calludf.obj : calludf.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) calludf.c
calludf : calludf.obj samputil.obj
	$(LINK) $(LFLAGS) -out:calludf.exe calludf.obj samputil.obj $(LIBS)


udf : 
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) udf.c
        $(LINK) $(LFLAGSSRV) -out:udf.dll udf.obj -def:udf.def $(LIBSAPI)
!ELSE
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) udf.c
        ilib /GI udfva.def
	$(LINK) $(LFLAGSSRV) -out:udf.dll udf.obj udfva.exp $(LIBSAPI)
!ENDIF
	$(COPY) udf.dll $(DB2PATH)\function

#--------------------inpcli/ ../c/inpsrv------------------------------------#

# this client works with the sample program samples/c/inpsrv.sqc
inpcli.obj : inpcli.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) inpcli.c
inpcli : inpcli.obj samputil.obj
	$(LINK) $(LFLAGS) -out:inpcli.exe inpcli.obj samputil.obj $(LIBS)


#--------------------inpcli2/inpsrv2----------------------------------------#

inpcli2.obj : inpcli2.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) inpcli2.c
inpcli2 : inpcli2.obj samputil.obj
	$(LINK) $(LFLAGS) -out:inpcli2.exe inpcli2.obj samputil.obj $(LIBS)


inpsrv2 : 
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) inpsrv2.c
        $(LINK) $(LFLAGSSRV) -out:inpsrv2.dll \
	inpsrv2.obj samputil.obj -def:inpsrv2.def $(LIBS)
!ELSE
	$(ERASE) samputil.obj
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) inpsrv2.c
        ilib /GI inpsrv2va.def
	$(LINK) $(LFLAGSSRV) -out:inpsrv2.dll \
	inpsrv2.obj samputil.obj inpsrv2va.exp $(LIBS)
	$(ERASE) samputil.obj
!ENDIF
	$(COPY) inpsrv2.dll $(DB2PATH)\function

#--------------------mrspcli/mrspsrv----------------------------------------#

mrspcli.obj : mrspcli.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) mrspcli.c
mrspcli : mrspcli.obj samputil.obj
	$(LINK) $(LFLAGS) -out:mrspcli.exe mrspcli.obj samputil.obj $(LIBS)


mrspsrv :
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) mrspsrv.c
        $(LINK) $(LFLAGSSRV) -out:mrspsrv.dll \
	mrspsrv.obj samputil.obj -def:mrspsrv.def $(LIBS)
!ELSE
	$(ERASE) samputil.obj
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) mrspsrv.c
        ilib /GI mrspsrvva.def
	$(LINK) $(LFLAGSSRV) -out:mrspsrv.dll \
	mrspsrv.obj samputil.obj mrspsrvva.exp $(LIBS)
	$(ERASE) samputil.obj
!ENDIF
	$(COPY) mrspsrv.dll $(DB2PATH)\function

#--------------------mrspcli2/mrspcli3/mrspsrv2-----------------------------#

mrspcli2.obj : mrspcli2.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) mrspcli2.c
mrspcli2 : mrspcli2.obj samputil.obj
	$(LINK) $(LFLAGS) -out:mrspcli2.exe mrspcli2.obj samputil.obj $(LIBS)


mrspcli3.c : mrspcli3.sqc
	cliprep mrspcli3 $(DB) $(UID) $(PWD)
clicall.obj : 
	$(CC) clicall.c $(makefile.htm#make_cl">CFLAGS)
mrspcli3.obj : mrspcli3.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) mrspcli3.c
mrspcli3 : mrspcli3.obj clicall.obj samputil.obj
	$(LINK) $(LFLAGS) -out:mrspcli3.exe mrspcli3.obj clicall.obj \
	samputil.obj $(LIBS) $(LIBSAPI)

mrspsrv2.c : mrspsrv2.sqc
	cliprep mrspsrv2 $(DB) $(UID) $(PWD)
mrspsrv2 : mrspsrv2.c
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) mrspsrv2.c
        $(LINK) $(LFLAGSSRV) -out:mrspsrv2.dll \
	mrspsrv2.obj -def:mrspsrv2.def $(LIBS) $(LIBSAPI)   
!ELSE
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) mrspsrv2.c
        ilib /GI mrspsrv2va.def
	$(LINK) $(LFLAGSSRV) -out:mrspsrv2.dll \
	mrspsrv2.obj mrspsrv2va.exp $(LIBS) $(LIBSAPI)
!ENDIF
	$(COPY) mrspsrv2.dll $(DB2PATH)\function

#--------------------outcli/ ../c/outsrv------------------------------------#

# this client works with the sample program samples/c/outsrv.sqc
outcli.obj : outcli.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) outcli.c
outcli : outcli.obj samputil.obj
	$(LINK) $(LFLAGS) -out:outcli.exe outcli.obj samputil.obj $(LIBS)


#--------------------outcli2/outsrv2----------------------------------------#

outcli2.obj : outcli2.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) outcli2.c
outcli2 : outcli2.obj samputil.obj
	$(LINK) $(LFLAGS) -out:outcli2.exe outcli2.obj samputil.obj $(LIBS)


outsrv2 :
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) outsrv2.c
        $(LINK) $(LFLAGSSRV) -out:outsrv2.dll \
	outsrv2.obj samputil.obj -def:outsrv2.def $(LIBS)
!ELSE
	$(ERASE) samputil.obj
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) outsrv2.c
        ilib /GI outsrv2va.def
	$(LINK) $(LFLAGSSRV) -out:outsrv2.dll \
	outsrv2.obj samputil.obj outsrv2va.exp $(LIBS)
	$(ERASE) samputil.obj
!ENDIF
	$(COPY) outsrv2.dll $(DB2PATH)\function

#--------------------sendda/showda------------------------------------------#

sendda.obj : sendda.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) sendda.c
sendda : sendda.obj samputil.obj
	$(LINK) $(LFLAGS) -out:sendda.exe sendda.obj samputil.obj $(LIBS)

showda :
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) showda.c
        $(LINK) $(LFLAGSSRV) -out:showda.dll \
	showda.obj samputil.obj -def:showda.def $(LIBS)
!ELSE
	$(ERASE) samputil.obj
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) samputil.c
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) showda.c
        ilib /GI showdava.def
	$(LINK) $(LFLAGSSRV) -out:showda.dll \
	showda.obj samputil.obj showdava.exp $(LIBS)
	$(ERASE) samputil.obj
!ENDIF
	$(COPY) showda.dll $(DB2PATH)\function

#****************************************************************************
#                  3e -  samples for the ORDER scenario
#****************************************************************************

create.obj : create.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) create.c
create : create.obj samputil.obj
	$(LINK) $(LFLAGS) -out:create.exe create.obj samputil.obj $(LIBS)

custin.obj : custin.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) custin.c
custin : custin.obj samputil.obj
	$(LINK) $(LFLAGS) -out:custin.exe custin.obj samputil.obj $(LIBS)

prodin.obj : prodin.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) prodin.c
prodin : prodin.obj samputil.obj
	$(LINK) $(LFLAGS) -out:prodin.exe prodin.obj samputil.obj $(LIBS)

prodpart.obj : prodpart.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) prodpart.c
prodpart : prodpart.obj samputil.obj
	$(LINK) $(LFLAGS) -out:prodpart.exe prodpart.obj samputil.obj $(LIBS)

ordin.obj : ordin.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) ordin.c
ordin : ordin.obj samputil.obj
	$(LINK) $(LFLAGS) -out:ordin.exe ordin.obj samputil.obj $(LIBS)

ordrep.obj : ordrep.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) ordrep.c
ordrep : ordrep.obj samputil.obj
	$(LINK) $(LFLAGS) -out:ordrep.exe ordrep.obj samputil.obj $(LIBS)

partrep.obj : partrep.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) partrep.c
partrep : partrep.obj samputil.obj
	$(LINK) $(LFLAGS) -out:partrep.exe partrep.obj samputil.obj $(LIBS)

dropcli.obj : dropcli.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) dropcli.c
dropcli : dropcli.obj samputil.obj
	$(LINK) $(LFLAGS) -out:dropcli.exe dropcli.obj samputil.obj $(LIBS)

#order is a UDF library called by ordrep.c
order     : 
!IF "$(COMPILER)" == "MS"
	$(CC) $(makefile.htm#make_cl">CFLAGS) order.c
        $(LINK) $(LFLAGSSRV) -out:order.dll order.obj -def:order.def $(LIBS)
!ELSE
	$(CC) $(makefile.htm#make_cl">CFLAGSSRV) order.c
        ilib /GI orderva.def
	$(LINK) $(LFLAGSSRV) -out:order.dll order.obj orderva.exp $(LIBS)
!ENDIF
	$(COPY) order.dll $(DB2PATH)\function

#****************************************************************************
#                  3f -  DB2 Version 2 samples
#****************************************************************************

v2sutil.o :
	$(CC) v2sutil.c $(makefile.htm#make_cl">CFLAGS)


v2fetch.obj : v2fetch.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) v2fetch.c
v2fetch : v2fetch.obj v2sutil.obj
	$(LINK) $(LFLAGS) -out:v2fetch.exe v2fetch.obj v2sutil.obj $(LIBS)

v2xfetch.obj : v2xfetch.c
	$(CC) $(makefile.htm#make_cl">CFLAGS) v2xfetch.c
v2xfetch : v2xfetch.obj v2sutil.obj
	$(LINK) $(LFLAGS) -out:v2xfetch.exe v2xfetch.obj v2sutil.obj $(LIBS)