#############################################################################
# (c) Copyright IBM Corp. 2007 All rights reserved.
# 
# The following sample of source code ("Sample") is owned by International 
# Business Machines Corporation or one of its subsidiaries ("IBM") and is 
# copyrighted and licensed, not sold. You may use, copy, modify, and 
# distribute the Sample in any form without payment to IBM, for the purpose of 
# assisting you in the development of your applications.
# 
# The Sample code is provided to you on an "AS IS" basis, without warranty of 
# any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR 
# IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do 
# not allow for the exclusion or limitation of implied warranties, so the above 
# limitations or exclusions may not apply to you. IBM shall not be liable for 
# any damages you suffer as a result of using, copying, modifying or 
# distributing the Sample, even if IBM has been advised of the possibility of 
# such damages.
#############################################################################
#
# MAKEFILE for C++ samples on AIX
#
# Enter one of the following commands
#
#   make <app_name>	   - Builds the program designated by <app_name>
#   make all		   - Builds all supplied sample programs
#   make srv		   - Builds all programs that that run on the server
#			      including routines (stored procedures and UDFs)
#   make rtn		   - Builds all routines (stored procedures and UDFs)
#   make all_client	   - Builds all client programs (all programs in the
#			      call_rtn and client_run categories)
#   make call_rtn	   - Builds all client programs that call routines
#   make client_run	   - Builds all programs that run completely on the
#			      client (not ones that call routines)
#   make clean		   - Erases all intermediate files produced in the
#			      build process
#   make cleanall	   - Erases all files produced in the build process
#			      (all files except the original source files)
#
# The makefile contains the following sections:
#    1 -- VARIABLES
#    2 -- MAKE CATEGORIES
#    3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES
#
#
##############################################################################
#		   1 -- 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

BLDAPP=bldapp
BLDRTN=bldrtn
BLDMC=bldmc
BLDMT=bldmt

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

# To connect to a remote SAMPLE2 database cataloged on the client machine
# with another name, update the ALIAS2 variable.
ALIAS2=sample2
# Set UID2 and PWD2 if neccesary
UID2=$(UID)
PWD2=$(PWD)

ERASE=rm -f

#############################################################################
#  2 -- MAKE CATEGORIES
#	       2a - make all (srv + all_client)
#	       2b - make srv
#	       2c - make rtn
#	       2d - make all_client (call_rtn + client_run)
#	       2e - make call_rtn
#	       2f - make client_run
#	       2g - make clean
#	       2h - make cleanall
#############################################################################

#****************************************************************************
#		   2a - make all (srv + all_client)
#****************************************************************************

all : \
	srv \
	all_client

#****************************************************************************
#		   2b - make srv
#****************************************************************************

srv : \
	rtn \
	dbcfg \
	instart

#****************************************************************************
#		   2c - make rtn
#****************************************************************************

rtn : \
	spserver \
	udfsrv \
	udfemsrv

#****************************************************************************
#		   2d - make all_client (call_rtn + client_run)
#****************************************************************************

all_client : \
	call_rtn \
	client_run

#****************************************************************************
#		   2e - make call_rtn
#****************************************************************************

call_rtn : \
	spclient \
	udfcli \
	udfemcli

#****************************************************************************
#		   2f - make client_run
#****************************************************************************

client_run : \
	cli_info clisnap clisnapnew \
	dbauth dbconn dbcreate dbhistfile dbinfo dbinline dbinspec \
	dblogconn dblognoconn \
	dbmcon dbupgrade dbpkg dbrestore dbrollfwd \
	dbsample dbsnap dbsnapnew dtformat dbthrds dbuse \
	dtlob dtstruct dtudt \
	evm \
	fnuse \
	inattach inauth ininfo insnap insnapnew \
	tbast tbcompress tbconstr tbcreate tbident tbinfo tbintrig \
	tbloadcursor tbmerge tbmod tbmove tbonlineinx tbpriv tbread tbreorg \
	tbrunstats tbsavept tbsel tbtemp \
	tbtrig tbumqt tbunion tscreate 

#****************************************************************************
#		   2g - make clean
#****************************************************************************

clean :
	$(ERASE) *.o
	$(ERASE) *.DEL *.TXT *.MSG
	$(ERASE) dbauth.C dbcfg.C dbconn.C dbhistfile.C
	$(ERASE) dbinline.C dbinspec.C
	$(ERASE) dblogconn.C dblognoconn.C
	$(ERASE) dbmcon.C dbmcon1.C dbmcon2.C
	$(ERASE) dbpkg.C  dbrestore.C dbrollfwd.C
	$(ERASE) dbsample.C dbthrds.C dbuse.C
	$(ERASE) dtformat.C dtlob.C dtstruct.C
	$(ERASE) dtudt.C 
	$(ERASE) evm.C fnuse.C
	$(ERASE) inauth.C
	$(ERASE) spclient.C spserver.C
	$(ERASE) tbast.C tbcompress.C tbconstr.C tbcreate.C tbident.C 
	$(ERASE) tbinfo.C tbintrig.C tbloadcursor.C tbmerge.C tbmod.C
	$(ERASE) tbmove.C tbonlineinx.C tbpriv.C tbread.C tbreorg.C
	$(ERASE) tbrunstats.C tbsavept.C tbsel.C tbtemp.C tbtrig.C
	$(ERASE) tbumqt.C tbunion.C 
	$(ERASE) tscreate.C 
	$(ERASE) udfcli.C udfemcli.C utilemb.C

#****************************************************************************
#		   2h - make cleanall
#****************************************************************************

cleanall : \
	clean
	$(ERASE) *.bnd
	$(ERASE) cli_info clisnap clisnapnew
	$(ERASE) dbauth dbcfg dbconn dbcreate dbhistfile
	$(ERASE) dbinline dbinfo dbinspec
	$(ERASE) dblogconn dblognoconn
	$(ERASE) dbmcon dbmcon1 dbmcon2
	$(ERASE) dbupgrade dbpkg dbrestore dbrollfwd
	$(ERASE) dbsample dbsnap dbsnapnew dbthrds dbuse
	$(ERASE) dtformat dtlob dtstruct dtudt
	$(ERASE) evm
	$(ERASE) fnuse
	$(ERASE) inattach inauth ininfo insnap insnapnew instart
	$(ERASE) spclient spserver
	$(ERASE) tbast tbcompress tbconstr tbcreate tbident tbinfo 
	$(ERASE) tbintrig tbloadcursor tbmerge tbmod tbmove tbonlineinx
	$(ERASE) tbpriv tbread tbreorg tbrunstats tbsavept tbsel tbtemp  
	$(ERASE) tbtrig tbumqt tbunion 
	$(ERASE) tscreate 
	$(ERASE) udfcli udfsrv
	$(ERASE) udfemcli udfemsrv
	$(ERASE) $(DB2PATH)/function/udfsrv
	$(ERASE) $(DB2PATH)/function/udfemsrv
	$(ERASE) $(DB2PATH)/function/spserver


#############################################################################
#  3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES
#		   3a -  regular samples, non-embedded SQL
#		   3b -  regular samples, embedded SQL
#		   3c -  client/server samples
#		   3d -  multi-connection samples
#		   3e -  multi-threaded samples
#############################################################################

#****************************************************************************
#		   3a -  regular samples, non-embedded SQL
#****************************************************************************

cli_info :
	$(BLDAPP) cli_info
clisnap :
	$(BLDAPP) clisnap
clisnapnew :
	$(BLDAPP) clisnapnew
dbcreate :
	$(BLDAPP) dbcreate
dbinfo :
	$(BLDAPP) dbinfo
dbupgrade :
	$(BLDAPP) dbupgrade
dbsnap :
	$(BLDAPP) dbsnap
dbsnapnew :
	$(BLDAPP) dbsnapnew
inattach :
	$(BLDAPP) inattach
ininfo :
	$(BLDAPP) ininfo
insnap :
	$(BLDAPP) insnap
insnapnew :
	$(BLDAPP) insnapnew
instart :
	$(BLDAPP) instart



#****************************************************************************
#		   3b -  regular samples, embedded SQL
#****************************************************************************

dbauth :
	$(BLDAPP) dbauth $(ALIAS) $(UID) $(PWD)
dbcfg :
	$(BLDAPP) dbcfg $(ALIAS) $(UID) $(PWD)
dbconn :
	$(BLDAPP) dbconn $(ALIAS) $(UID) $(PWD)
dbhistfile:
	$(BLDAPP) dbhistfile $(ALIAS) $(UID) $(PWD)
dbinline:
	$(BLDAPP) dbinline $(ALIAS) $(UID) $(PWD)
dbinspec:
	$(BLDAPP) dbinspec $(ALIAS) $(UID) $(PWD)
dblogconn:
	$(BLDAPP) dblogconn $(ALIAS) $(UID) $(PWD)
dblognoconn:
	$(BLDAPP) dblognoconn $(ALIAS) $(UID) $(PWD)
dbpkg :
	$(BLDAPP) dbpkg $(ALIAS) $(UID) $(PWD)
dbrestore:
	$(BLDAPP) dbrestore $(ALIAS) $(UID) $(PWD)
dbrollfwd:
	$(BLDAPP) dbrollfwd $(ALIAS) $(UID) $(PWD)
dbsample :
	$(BLDAPP) dbsample $(ALIAS) $(UID) $(PWD)
dbuse :
	$(BLDAPP) dbuse $(ALIAS) $(UID) $(PWD)
dtformat :
	$(BLDAPP) dtformat $(ALIAS) $(UID) $(PWD)
dtlob :
	$(BLDAPP) dtlob $(ALIAS) $(UID) $(PWD)
dtstruct :
	$(BLDAPP) dtstruct $(ALIAS) $(UID) $(PWD)
dtudt :
	$(BLDAPP) dtudt $(ALIAS) $(UID) $(PWD)
evm :
	$(BLDAPP) evm $(ALIAS) $(UID) $(PWD)
fnuse :
	$(BLDAPP) fnuse $(ALIAS) $(UID) $(PWD)
inauth :
	$(BLDAPP) inauth $(ALIAS) $(UID) $(PWD)
tbast :
	$(BLDAPP) tbast $(ALIAS) $(UID) $(PWD)
tbcompress :
	$(BLDAPP) tbcompress $(ALIAS) $(UID) $(PWD)
tbconstr :
	$(BLDAPP) tbconstr $(ALIAS) $(UID) $(PWD)
tbcreate :
	$(BLDAPP) tbcreate $(ALIAS) $(UID) $(PWD)
tbident :
	$(BLDAPP) tbident $(ALIAS) $(UID) $(PWD)
tbinfo :
	$(BLDAPP) tbinfo $(ALIAS) $(UID) $(PWD)
tbintrig :
	$(BLDAPP) tbintrig $(ALIAS) $(UID) $(PWD)
tbloadcursor :
	$(BLDAPP) tbloadcursor $(ALIAS) $(UID) $(PWD) 
tbmerge :
	$(BLDAPP) tbmerge $(ALIAS) $(UID) $(PWD)
tbmod :
	$(BLDAPP) tbmod $(ALIAS) $(UID) $(PWD)
tbmove :
	$(BLDAPP) tbmove $(ALIAS) $(UID) $(PWD)
tbonlineinx :
	$(BLDAPP) tbonlineinx $(ALIAS) $(UID) $(PWD)
tbpriv :
	$(BLDAPP) tbpriv $(ALIAS) $(UID) $(PWD)
tbread :
	$(BLDAPP) tbread $(ALIAS) $(UID) $(PWD)
tbreorg :
	$(BLDAPP) tbreorg $(ALIAS) $(UID) $(PWD)
tbrunstats :
	$(BLDAPP) tbrunstats $(ALIAS) $(UID) $(PWD)
tbsavept :
	$(BLDAPP) tbsavept $(ALIAS) $(UID) $(PWD)
tbsel :
	tbselinit
	$(BLDAPP) tbsel $(ALIAS) $(UID) $(PWD)
tbtemp :
	$(BLDAPP) tbtemp $(ALIAS) $(UID) $(PWD)
tbtrig :
	$(BLDAPP) tbtrig $(ALIAS) $(UID) $(PWD)
tbumqt :
	$(BLDAPP) tbumqt $(ALIAS) $(UID) $(PWD)
tbunion :
	$(BLDAPP) tbunion $(ALIAS) $(UID) $(PWD)
tscreate :
	$(BLDAPP) tscreate $(ALIAS) $(UID) $(PWD)

#****************************************************************************
#		   3c - client/server samples
#****************************************************************************


spclient :
	$(BLDAPP) spclient $(ALIAS) $(UID) $(PWD)
spserver :
	$(BLDRTN) spserver $(ALIAS)
	spcat

udfcli :
	$(BLDAPP) udfcli $(ALIAS) $(UID) $(PWD)
udfsrv :
	$(BLDRTN) udfsrv

udfemcli :
	$(BLDAPP) udfemcli $(ALIAS) $(UID) $(PWD)
udfemsrv :
	$(BLDRTN) udfemsrv $(ALIAS)

#****************************************************************************
#		   3d -  multi-connection samples
#****************************************************************************


dbmcon :
	$(BLDMC)  dbmcon $(ALIAS) $(ALIAS2) $(UID) $(PWD) $(UID2) $(PWD2)

#****************************************************************************
#		   3e -  multi-threaded samples
#****************************************************************************


dbthrds :
	$(BLDMT)  dbthrds $(ALIAS) $(UID) $(PWD)