# (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 -- PTX operating system
# Enter one of the following commands
#
# make <app_name> - Builds the program designated by <app_name>
#
# make all - Builds the all the supplied sample programs
# make udfspserver - Builds the examples that implement
# stored procedures and UDFs (on the server)
# make localclient - Builds the examples that can only be run
# successfully on a server
# make udfspclient - Builds the examples that call stored
# procedures and UDFs ( they can run remotely )
# make otherremoteclient - Builds the examples that will run successfully
# on a client platform ( others than udfspclient )
# make allremoteclient - Builds programs in udfspclient and otherremoteclient
# categories
#
# make clean - Erases intermediate files
# make 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
##################################################################################
# This file assumes the DB2 instance path is defined by the variable HOME.
# It also assumes DB2 is installed under the DB2 instance.
# If these statements are not correct, update the variable DB2PATH.
DB2PATH = $(HOME)/sqllib
# The following compile and link options are for the ptx/C compiler.
CC=cc
CFLAGS=$(EXTRA_CFLAGS) -I$(DB2PATH)/include
LIBS=-L$(DB2PATH)/lib -ldb2
# To connect to a database with another name, update the DB variable.
DB=sample
# Set UID and PWD if neccesary
UID=
PWD=
COPY=cp
ERASE=rm -f
#############################################################################
# 2 -- MAKE CATEGORIES
# 2a - make all(= allremoteclient + localclient +udfspserver)
# 2b - make udfspserver
# 2c - make localclient
# 2d - make udfspclient
# 2e - make otherremoteclient
# 2f - make allremoteclient(= udfspclient + otherremoteclient)
# 2g - make clean
# 2h - make cleanall
#############################################################################
#****************************************************************************
# 2a - make all
#****************************************************************************
all : \
allremoteclient \
localclient \
udfspserver
#****************************************************************************
# 2b - make udfspserver
#****************************************************************************
udfspserver : \
spserver \
udf udfsrv
#****************************************************************************
# 2c - make localclient
#****************************************************************************
localclient : \
dbstart dbstop
#****************************************************************************
# 2d - make udfspclient
#****************************************************************************
udfspclient : \
calludf \
spclient \
udfcli
#****************************************************************************
# 2e - make otherremoteclient
#****************************************************************************
otherremoteclient : \
adhoc advsql asynrlog autocfg \
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 thdsrver \
tload trigsql tspace \
updat \
varinp
#****************************************************************************
# 2f - make allremoteclient
#****************************************************************************
allremoteclient : \
udfspclient \
otherremoteclient
#****************************************************************************
# 2g - make clean
#****************************************************************************
clean : \
cleangen \
cleanemb
cleangen :
$(ERASE) *.o *.map message.*
$(ERASE) *.DEL *.TXT *.IXF
$(ERASE) photo.xwd
$(ERASE) /u/backup/*
cleanemb :
$(ERASE) adhoc.c advsql.c asynrlog.c autocfg.c
$(ERASE) 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) qload.c
$(ERASE) rebind.c rechist.c recursql.c
$(ERASE) sampudf.c spclient.c spserver.c static.c
$(ERASE) tabscont.c tabspace.c tabsql.c tbdefine.c
$(ERASE) thdsrver.c tload.c trigsql.c tspace.c
$(ERASE) updat.c utilemb.c udfcli.c
$(ERASE) varinp.c
#****************************************************************************
# 2h - make cleanall
#****************************************************************************
cleanall : \
clean
$(ERASE) *.bnd
$(ERASE) adhoc advsql asynrlog autocfg
$(ERASE) backrest blobfile
$(ERASE) calludf cli_info client columns cursor
$(ERASE) d_dbconf d_dbmcon db_udcs db2mon dbauth dbcat
$(ERASE) dbcmt dbconf dbinst dbmconf dbsnap
$(ERASE) dbstart dbstat dbstop dcscat delet dmscont dynamic
$(ERASE) ebcdicdb expsamp
$(ERASE) impexp
$(ERASE) joinsql
$(ERASE) loadqry lobeval lobfile lobloc lobval
$(ERASE) makeapi migrate monreset monsz
$(ERASE) nodecat
$(ERASE) openftch
$(ERASE) rebind rechist recursql restart
$(ERASE) sampudf setact setrundg static sws
$(ERASE) tabscont tabspace tabsql tbdefine
$(ERASE) thdsrver tload trigsql tspace
$(ERASE) updat udf udfcli udfsrv
$(ERASE) varinp
$(ERASE) $(DB2PATH)/function/udf
$(ERASE) $(DB2PATH)/function/udfsrv
$(ERASE) $(DB2PATH)/function/spserver
#############################################################################
# 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 - multi-threaded samples
#############################################################################
#****************************************************************************
# 3a - utilities
#****************************************************************************
utilapi.o : utilapi.c
$(CC) -c utilapi.c $(CFLAGS)
utilemb.c : utilemb.sqc
./embprep utilemb $(DB) $(UID) $(PWD)
utilemb.o : utilemb.c
$(CC) -c utilemb.c $(CFLAGS)
#****************************************************************************
# 3b - non embedded SQL, non client/server samples
#****************************************************************************
backrest : utilapi.o backrest.c
$(CC) -o backrest backrest.c utilapi.o $(CFLAGS) $(LIBS)
cli_info : utilapi.o cli_info.c
$(CC) -o cli_info cli_info.c utilapi.o $(CFLAGS) $(LIBS)
client : utilapi.o client.c
$(CC) -o client client.c utilapi.o $(CFLAGS) $(LIBS)
d_dbconf : utilapi.o d_dbconf.c
$(CC) -o d_dbconf d_dbconf.c utilapi.o $(CFLAGS) $(LIBS)
d_dbmcon : utilapi.o d_dbmcon.c
$(CC) -o d_dbmcon d_dbmcon.c utilapi.o $(CFLAGS) $(LIBS)
db_udcs : utilapi.o db_udcs.c
$(CC) -o db_udcs db_udcs.c utilapi.o $(CFLAGS) $(LIBS)
db2mon : utilapi.o db2mon.c
$(CC) -o db2mon db2mon.c utilapi.o $(CFLAGS) $(LIBS)
dbcat : utilapi.o dbcat.c
$(CC) -o dbcat dbcat.c utilapi.o $(CFLAGS) $(LIBS)
dbcmt : utilapi.o dbcmt.c
$(CC) -o dbcmt dbcmt.c utilapi.o $(CFLAGS) $(LIBS)
dbconf : utilapi.o dbconf.c
$(CC) -o dbconf dbconf.c utilapi.o $(CFLAGS) $(LIBS)
dbinst : utilapi.o dbinst.c
$(CC) -o dbinst dbinst.c utilapi.o $(CFLAGS) $(LIBS)
dbmconf : utilapi.o dbmconf.c
$(CC) -o dbmconf dbmconf.c utilapi.o $(CFLAGS) $(LIBS)
dbsnap : utilapi.o dbsnap.c
$(CC) -o dbsnap dbsnap.c utilapi.o $(CFLAGS) $(LIBS)
dbstart : utilapi.o dbstart.c
$(CC) -o dbstart dbstart.c utilapi.o $(CFLAGS) $(LIBS)
dbstop : utilapi.o dbstop.c
$(CC) -o dbstop dbstop.c utilapi.o $(CFLAGS) $(LIBS)
dcscat : utilapi.o dcscat.c
$(CC) -o dcscat dcscat.c utilapi.o $(CFLAGS) $(LIBS)
dmscont : utilapi.o dmscont.c
$(CC) -o dmscont dmscont.c utilapi.o $(CFLAGS) $(LIBS)
ebcdicdb : utilapi.o ebcdicdb.c
$(CC) -o ebcdicdb ebcdicdb.c utilapi.o $(CFLAGS) $(LIBS)
migrate : utilapi.o migrate.c
$(CC) -o migrate migrate.c utilapi.o $(CFLAGS) $(LIBS)
monreset : utilapi.o monreset.c
$(CC) -o monreset monreset.c utilapi.o $(CFLAGS) $(LIBS)
monsz : utilapi.o monsz.c
$(CC) -o monsz monsz.c utilapi.o $(CFLAGS) $(LIBS)
nodecat : utilapi.o nodecat.c
$(CC) -o nodecat nodecat.c utilapi.o $(CFLAGS) $(LIBS)
restart : utilapi.o restart.c
$(CC) -o restart restart.c utilapi.o $(CFLAGS) $(LIBS)
setact : utilapi.o setact.c
$(CC) -o setact setact.c utilapi.o $(CFLAGS) $(LIBS)
setrundg : utilapi.o setrundg.c
$(CC) -o setrundg setrundg.c utilapi.o $(CFLAGS) $(LIBS)
sws : utilapi.o sws.c
$(CC) -o sws sws.c utilapi.o $(CFLAGS) $(LIBS)
#****************************************************************************
# 3c - embedded SQL non client/server samples
#****************************************************************************
adhoc.c : adhoc.sqc
./embprep adhoc $(DB) $(UID) $(PWD)
adhoc : adhoc.c utilemb.o
$(CC) -o adhoc adhoc.c utilemb.o $(CFLAGS) $(LIBS)
advsql.c : advsql.sqc
./embprep advsql $(DB) $(UID) $(PWD)
advsql : advsql.c utilemb.o
$(CC) -o advsql advsql.c utilemb.o $(CFLAGS) $(LIBS)
asynrlog.c : asynrlog.sqc
./embprep asynrlog $(DB) $(UID) $(PWD)
asynrlog : asynrlog.c utilemb.o
$(CC) -o asynrlog asynrlog.c utilemb.o $(CFLAGS) $(LIBS)
autocfg.c : autocfg.sqc
./embprep autocfg $(DB) $(UID) $(PWD)
autocfg : autocfg.c utilemb.o
$(CC) -o autocfg autocfg.c utilemb.o $(CFLAGS) $(LIBS)
blobfile.c : blobfile.sqc
./embprep blobfile $(DB) $(UID) $(PWD)
blobfile : blobfile.c utilemb.o
$(CC) -o blobfile blobfile.c utilemb.o $(CFLAGS) $(LIBS)
columns.c : columns.sqc
./embprep columns $(DB) $(UID) $(PWD)
columns : columns.c utilemb.o
$(CC) -o columns columns.c utilemb.o $(CFLAGS) $(LIBS)
cursor.c : cursor.sqc
./embprep cursor $(DB) $(UID) $(PWD)
cursor : cursor.c utilemb.o
$(CC) -o cursor cursor.c utilemb.o $(CFLAGS) $(LIBS)
dbauth.c : dbauth.sqc
./embprep dbauth $(DB) $(UID) $(PWD)
dbauth : dbauth.c utilemb.o
$(CC) -o dbauth dbauth.c utilemb.o $(CFLAGS) $(LIBS)
dbstat.c : dbstat.sqc
./embprep dbstat $(DB) $(UID) $(PWD)
dbstat : dbstat.c utilemb.o
$(CC) -o dbstat dbstat.c utilemb.o $(CFLAGS) $(LIBS)
delet.c : delet.sqc
./embprep delet $(DB) $(UID) $(PWD)
delet : delet.c utilemb.o
$(CC) -o delet delet.c utilemb.o $(CFLAGS) $(LIBS)
dynamic.c : dynamic.sqc
./embprep dynamic $(DB) $(UID) $(PWD)
dynamic : dynamic.c utilemb.o
$(CC) -o dynamic dynamic.c utilemb.o $(CFLAGS) $(LIBS)
expsamp.c : expsamp.sqc
./embprep expsamp $(DB) $(UID) $(PWD)
expsamp : expsamp.c utilemb.o
$(CC) -o expsamp expsamp.c utilemb.o $(CFLAGS) $(LIBS)
impexp.c : impexp.sqc
./embprep impexp $(DB) $(UID) $(PWD)
impexp : impexp.c utilemb.o
$(CC) -o impexp impexp.c utilemb.o $(CFLAGS) $(LIBS)
joinsql.c : joinsql.sqc
./embprep joinsql $(DB) $(UID) $(PWD)
joinsql : joinsql.c utilemb.o
$(CC) -o joinsql joinsql.c utilemb.o $(CFLAGS) $(LIBS)
loadqry.c : loadqry.sqc
./embprep loadqry $(DB) $(UID) $(PWD)
loadqry : loadqry.c utilemb.o
$(CC) -o loadqry loadqry.c utilemb.o $(CFLAGS) $(LIBS)
lobeval.c : lobeval.sqc
./embprep lobeval $(DB) $(UID) $(PWD)
lobeval : lobeval.c utilemb.o
$(CC) -o lobeval lobeval.c utilemb.o $(CFLAGS) $(LIBS)
lobfile.c : lobfile.sqc
./embprep lobfile $(DB) $(UID) $(PWD)
lobfile : lobfile.c utilemb.o
$(CC) -o lobfile lobfile.c utilemb.o $(CFLAGS) $(LIBS)
lobloc.c : lobloc.sqc
./embprep lobloc $(DB) $(UID) $(PWD)
lobloc : lobloc.c utilemb.o
$(CC) -o lobloc lobloc.c utilemb.o $(CFLAGS) $(LIBS)
lobval.c : lobval.sqc
./embprep lobval $(DB) $(UID) $(PWD)
lobval : lobval.c utilemb.o
$(CC) -o lobval lobval.c utilemb.o $(CFLAGS) $(LIBS)
makeapi.c : makeapi.sqc
./embprep makeapi $(DB) $(UID) $(PWD)
makeapi : makeapi.c utilemb.o
$(CC) -o makeapi makeapi.c utilemb.o $(CFLAGS) $(LIBS)
openftch.c : openftch.sqc
./embprep openftch $(DB) $(UID) $(PWD)
openftch : openftch.c utilemb.o
$(CC) -o openftch openftch.c utilemb.o $(CFLAGS) $(LIBS)
rebind.c : rebind.sqc
./embprep rebind $(DB) $(UID) $(PWD)
rebind: rebind.c utilemb.o
$(CC) -o rebind rebind.c utilemb.o $(CFLAGS) $(LIBS)
rechist.c : rechist.sqc
./embprep rechist $(DB) $(UID) $(PWD)
rechist: rechist.c utilemb.o
$(CC) -o rechist rechist.c utilemb.o $(CFLAGS) $(LIBS)
recursql.c : recursql.sqc
./embprep recursql $(DB) $(UID) $(PWD)
recursql : recursql.c utilemb.o
$(CC) -o recursql recursql.c utilemb.o $(CFLAGS) $(LIBS)
sampudf.c : sampudf.sqc
./embprep sampudf $(DB) $(UID) $(PWD)
sampudf : sampudf.c utilemb.o
$(CC) -o sampudf sampudf.c utilemb.o $(CFLAGS) $(LIBS)
static.c : static.sqc
./embprep static $(DB) $(UID) $(PWD)
static : static.c utilemb.o
$(CC) -o static static.c utilemb.o $(CFLAGS) $(LIBS)
tabscont.c : tabscont.sqc
./embprep tabscont $(DB) $(UID) $(PWD)
tabscont : tabscont.c utilemb.o
$(CC) -o tabscont tabscont.c utilemb.o $(CFLAGS) $(LIBS)
tabspace.c : tabspace.sqc
./embprep tabspace $(DB) $(UID) $(PWD)
tabspace : tabspace.c utilemb.o
$(CC) -o tabspace tabspace.c utilemb.o $(CFLAGS) $(LIBS)
tabsql.c : tabsql.sqc
./embprep tabsql $(DB) $(UID) $(PWD)
tabsql : tabsql.c utilemb.o
$(CC) -o tabsql tabsql.c utilemb.o $(CFLAGS) $(LIBS)
tbdefine.c : tbdefine.sqc
./embprep tbdefine $(DB) $(UID) $(PWD)
tbdefine : tbdefine.c utilemb.o
$(CC) -o tbdefine tbdefine.c utilemb.o $(CFLAGS) $(LIBS)
tload.c : tload.sqc
./embprep tload $(DB) $(UID) $(PWD)
tload : tload.c utilemb.o
$(CC) -o tload tload.c utilemb.o $(CFLAGS) $(LIBS)
trigsql.c : trigsql.sqc
./embprep trigsql $(DB) $(UID) $(PWD)
trigsql : trigsql.c utilemb.o
$(CC) -o trigsql trigsql.c utilemb.o $(CFLAGS) $(LIBS)
tspace.c : tspace.sqc
./embprep tspace $(DB) $(UID) $(PWD)
tspace : tspace.c utilemb.o
$(CC) -o tspace tspace.c utilemb.o $(CFLAGS) $(LIBS)
updat.c : updat.sqc
./embprep updat $(DB) $(UID) $(PWD)
updat : updat.c utilemb.o
$(CC) -o updat updat.c utilemb.o $(CFLAGS) $(LIBS)
varinp.c : varinp.sqc
./embprep varinp $(DB) $(UID) $(PWD)
varinp : varinp.c utilemb.o
$(CC) -o varinp varinp.c utilemb.o $(CFLAGS) $(LIBS)
#****************************************************************************
# 3d - client/server samples (mixed)
#****************************************************************************
#--------------------calludf/udf--------------------------------------------#
calludf.c : calludf.sqc
./embprep calludf $(DB) $(UID) $(PWD)
calludf : calludf.c utilemb.o
$(CC) -o calludf calludf.c utilemb.o $(CFLAGS) $(LIBS)
udf : udf.c
$(CC) -KPIC $(CFLAGS) -c udf.c
$(CC) -G -o udf udf.o $(LIBS) -ldb2apie
$(ERASE) $(DB2PATH)/function/udf
$(COPY) udf $(DB2PATH)/function/udf
#-------------------- udfcli/udfsrv----------------------------------------#
udfcli.c : udfcli.sqc
./embprep udfcli $(DB) $(UID) $(PWD)
udfcli : udfcli.c utilemb.o
$(CC) -o udfcli udfcli.c utilemb.o $(CFLAGS) $(LIBS)
udfsrv : udfsrv.c
$(CC) -KPIC $(CFLAGS) -c udfsrv.c
$(CC) -G -o udfsrv udfsrv.o $(LIBS) -ldb2apie
$(ERASE) $(DB2PATH)/function/udfsrv
$(COPY) udfsrv $(DB2PATH)/function/udfsrv
#--------------------spclient/spserver------------------------------------------#
spclient.c : spclient.sqc
./embprep spclient $(DB) $(UID) $(PWD)
spclient : spclient.c utilemb.o
$(CC) -o spclient spclient.c utilemb.o $(CFLAGS) $(LIBS)
spserver.c : spserver.sqc
./embprep spserver $(DB) $(UID) $(PWD)
spserver : spserver.c
$(CC) -KPIC $(CFLAGS) -c spserver.c
$(CC) -G -o spserver spserver.o $(LIBS)
$(ERASE) $(DB2PATH)/function/spserver
$(COPY) spserver $(DB2PATH)/function/spserver
#****************************************************************************
# 3e - multi-threaded samples
#****************************************************************************
thdsrver.c : thdsrver.sqc
./embprep thdsrver $(DB) $(UID) $(PWD)
thdsrver : thdsrver.c
$(CC) -Kthread -o thdsrver thdsrver.c $(CFLAGS) $(LIBS)