#############################################################################
# (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 SQLj samples on Unix
#
# 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 samples that can only be 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 samples (all programs in the
# 'call_rtn' and 'client_run' categories).
#
# make call_rtn - Builds all client programs that call routines,
# stored procedures and UDFs.
#
# make client_run - Builds all programs that run completely on the
# client (not ones that call routines, stored
# procedures or UDFs).
#
# make java_beans - Builds all Java Beans samples.
#
# 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
# To connect to a remote SAMPLE database cataloged on the client machine
# with another name, update the DB variable.
DB=sample
# Set UID, PWD, SERVER_NAME and PORT_NUMBER
UID=$(USER)
PWD=
SERVER_NAME=$(HOSTNAME)
PORT_NUMBER=50000
COPY=cp
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 + java_beans)
# 2e - make call_rtn
# 2f - make client_run
# 2g - make java_beans
# 2h - make clean
# 2i - make cleanall
#############################################################################
#****************************************************************************
# 2a - make all (srv + all_client)
#****************************************************************************
all : \
srv \
all_client \
sqljds
#****************************************************************************
# 2b - make srv
#****************************************************************************
srv : \
rtn
#****************************************************************************
# 2c - make rtn
#****************************************************************************
rtn : \
SpServer \
UDFsrv \
UDFjsrv
#****************************************************************************
# 2d - make all_client (call_rtn + client_run + java_beans)
#****************************************************************************
all_client : \
call_rtn \
client_run \
sqljds \
java_beans
#****************************************************************************
# 2e - make call_rtn
#****************************************************************************
call_rtn : \
SpClient \
UDFcli \
UDFjcli
#****************************************************************************
# 2f - make client_run
#****************************************************************************
client_run : \
Applt \
DbAuth DbConn DbMCon DbUse \
DtUdt \
LargeRid SetIntegrity \
TbAST TbCompress TbConstr TbCreate TbIdent TbInfo TbMod TbOnlineInx \
TbPriv TbRead TbRowcompress TbRunstats TbSel TbTemp TbTrig TbUMQT \
#****************************************************************************
# 2g - make java_beans
#****************************************************************************
java_beans : \
CreateEmployee \
GeneratePayroll
#****************************************************************************
# 2h - make clean
#****************************************************************************
clean :
$(ERASE) Applt.java
$(ERASE) CreateEmployee.java
$(ERASE) DbAuth.java
$(ERASE) DbConn.java
$(ERASE) DbMCon.java
$(ERASE) DbUse.java
$(ERASE) DtUdt.java
$(ERASE) GeneratePayroll.java
$(ERASE) LargeRid.java
$(ERASE) SetIntegrity.java
$(ERASE) TbAST.java
$(ERASE) TbCompress.java
$(ERASE) TbConstr.java
$(ERASE) TbCreate.java
$(ERASE) TbIdent.java
$(ERASE) TbInfo.java
$(ERASE) TbMod.java
$(ERASE) TbOnlineInx.java
$(ERASE) TbPriv.java
$(ERASE) TbRead.java
$(ERASE) TbRowcompress.java
$(ERASE) TbRunstats.java
$(ERASE) TbSel.java
$(ERASE) TbTemp.java
$(ERASE) TbTrig.java
$(ERASE) TbUMQT.java
$(ERASE) SpClient.java
$(ERASE) SpIterat.java
$(ERASE) SpServer.java
$(ERASE) UDFcli.java
$(ERASE) UDFjcli.java
$(ERASE) Util.java
$(ERASE) Batch1Demo.java
$(ERASE) Batch2Demo.java
$(ERASE) Batch3Demo.java
$(ERASE) BlobClobDemo.java
$(ERASE) CreateDemoSchema.java
$(ERASE) DbConnDataSource.java
$(ERASE) DbConMDataSources.java
$(ERASE) ScrollIterDemo.java
#****************************************************************************
# 2i - make cleanall
#****************************************************************************
cleanall : \
clean
$(ERASE) *.class *.ser
$(ERASE) $(DB2PATH)/function/SpContext.class
$(ERASE) $(DB2PATH)/function/SpIterat.class
$(ERASE) $(DB2PATH)/function/SpServer.class
$(ERASE) $(DB2PATH)/function/SpServerEmployees.class
$(ERASE) $(DB2PATH)/function/SpServerSalary.class
$(ERASE) $(DB2PATH)/function/SpServer_SJProfileKeys.class
$(ERASE) $(DB2PATH)/function/SpServer_SJProfile0.ser
$(ERASE) $(DB2PATH)/function/Person.class
$(ERASE) $(DB2PATH)/function/UDFsrv.class
$(ERASE) $(DB2PATH)/function/UDFjsrv.class
#############################################################################
# 3 -- COMMANDS TO MAKE INDIVIDUAL SAMPLES
# 3b - applet
# 3c - standalone applications
# 3d - client/server applications
# 3e - Java Beans applications
#############################################################################
#***************************************************************************
# 3b - applet
#***************************************************************************
Applt : Applt.sqlj
bldsqlj Applt $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
#***************************************************************************
# 3c - standalone applications
#***************************************************************************
DbAuth : Util.class DbAuth.sqlj
bldsqlj DbAuth $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
DbConn : Util.class DbConn.sqlj
bldsqlj DbConn $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
DbMCon : Util.class DbMCon.sqlj
# Re-catalog sample database as sample2,
# ignore errors since it may be cataloged already
-db2 catalog db $(DB) as sample2
bldsqlj DbMCon $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
java com.ibm.db2.jcc.sqlj.Binder \
-url jdbc:db2://$(SERVER_NAME):$(PORT_NUMBER)/sample2 \
-user $(UID) -password $(PWD) $@_SJProfile0.ser
DbUse : Util.class DbUse.sqlj
bldsqlj DbUse $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
DtUdt : Util.class DtUdt.sqlj
bldsqlj DtUdt $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
LargeRid : Util.class LargeRid.sqlj
LargeRidScrpt
bldsqlj LargeRid $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
SetIntegrity: Util.class SetIntegrity.sqlj
SetIntegrityScrpt
bldsqlj SetIntegrity $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbAST : Util.class TbAST.sqlj
TbASTScrpt
bldsqlj TbAST $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbCompress : Util.class TbCompress.sqlj
bldsqlj TbCompress $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbConstr : Util.class TbConstr.sqlj
sqlj TbConstr.sqlj
TbCreate : Util.class TbCreate.sqlj
bldsqlj TbCreate $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbIdent : Util.class TbIdent.sqlj
bldsqlj TbIdent $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbInfo : Util.class TbInfo.sqlj
bldsqlj TbInfo $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbMod : Util.class TbMod.sqlj
bldsqlj TbMod $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbOnlineInx : Util.class TbOnlineInx.sqlj
bldsqlj TbOnlineInx $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbPriv : Util.class TbPriv.sqlj
bldsqlj TbPriv $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbRead : Util.class TbRead.sqlj
bldsqlj TbRead $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbRowcompress : Util.class TbRowcompress.sqlj
TbRowcompressScrpt
bldsqlj TbRowcompress $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbRunstats : Util.class TbRunstats.sqlj
bldsqlj TbRunstats $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbSel : Util.class TbSel.sqlj
bldsqlj TbSel $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbTemp : Util.class TbTemp.sqlj
sqlj TbTemp.sqlj
TbTrig : Util.class TbTrig.sqlj
bldsqlj TbTrig $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
TbUMQT : Util.class TbUMQT.sqlj
sqlj TbUMQT.sqlj
Util.class : Util.sqlj
bldsqlj Util $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
#***************************************************************************
# 3d - client/server applications
#***************************************************************************
#--------------------SpClient / SpServer------------------------------------#
# Note: before you execute SpClient for the first time, you must call the
# SpCreate.db2 CLP script to catalog the methods in SpServer as stored
# procedures
SpCat :
spcat
SpClient : Util.class SpClient.sqlj
bldsqlj SpClient $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
SpIterat.class : SpIterat.sqlj
sqlj SpIterat.sqlj
SpServer : SpIterat.class SpServer.sqlj
bldsqlj SpServer $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
$(ERASE) $(DB2PATH)/function/SpContext.class
$(ERASE) $(DB2PATH)/function/SpIterat.class
$(ERASE) $(DB2PATH)/function/SpServer.class
$(ERASE) $(DB2PATH)/function/SpServerEmployees.class
$(ERASE) $(DB2PATH)/function/SpServerSalary.class
$(ERASE) $(DB2PATH)/function/SpServer_SJProfileKeys.class
$(ERASE) $(DB2PATH)/function/SpServer_SJProfile0.ser
$(COPY) SpContext.class $(DB2PATH)/function
$(COPY) SpIterat.class $(DB2PATH)/function
$(COPY) SpServer.class $(DB2PATH)/function
$(COPY) SpServerEmployees.class $(DB2PATH)/function
$(COPY) SpServerSalary.class $(DB2PATH)/function
$(COPY) SpServer_SJProfileKeys.class $(DB2PATH)/function
$(COPY) SpServer_SJProfile0.ser $(DB2PATH)/function
spcat
#--------------------UDFcli / UDFsrv------------------------------#
# Note: before you execute UDFcli for the first time, you must call the
# UDFCreate.db2 CLP script to register the functions in UDFsrv as
# User Defined Functions (UDFs).
UDFcat :
udfcat
UDFcli : UDFcat Util.class UDFcli.sqlj
bldsqlj UDFcli $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
UDFsrv : UDFsrv.java
javac UDFsrv.java
$(ERASE) $(DB2PATH)/function/UDFsrv.class
$(ERASE) $(DB2PATH)/function/Person.class
$(COPY) UDFsrv.class $(DB2PATH)/function
$(COPY) Person.class $(DB2PATH)/function
#-------------------- UDFjcli / UDFjsrv ------------------------------#
# Note: before you execute UDFjcli for the first time, you must call the
# UDFjCreate.db2 CLP script to register the functions in UDFjsrv as
# User Defined Functions (UDFs).
UDFjcat :
udfjcat
UDFjcli : UDFjcat Util.class UDFjcli.sqlj
bldsqlj UDFjcli $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
UDFjsrv : UDFjsrv.java
javac UDFjsrv.java
$(ERASE) $(DB2PATH)/function/UDFjsrv.class
$(COPY) UDFjsrv.class $(DB2PATH)/function
#***************************************************************************
# 3e - Java Beans applications
#***************************************************************************
CreateEmployee : Util.class CreateEmployee.sqlj
bldsqlj CreateEmployee $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
GeneratePayroll : Util.class GeneratePayroll.sqlj
bldsqlj GeneratePayroll $(UID) $(PWD) $(SERVER_NAME) $(PORT_NUMBER) $(DB)
#***************************************************************************
# 3f - Data Source sample application
#***************************************************************************
Batch1Demo :
bldsqljds Batch1Demo
Batch2Demo :
bldsqljds Batch2Demo
Batch3Demo :
bldsqljds Batch3Demo
BlobClobDemo :
bldsqljds BlobClobDemo
DbConnDataSource :
bldsqljds DbConnDataSource
DbConMDataSources :
bldsqljds DbConMDataSources
ScrollIterDemo :
bldsqljds ScrollIterDemo
#***************************************************************************
# 3g - Data Source sample applications
#***************************************************************************
sqljdssetup :
javac createRegisterDS.java
java createRegisterDS DS1.prop
java createRegisterDS DS2.prop
java createRegisterDS DS3.prop
sqlj CreateDemoSchema.sqlj
java CreateDemoSchema
sqljds : sqljdssetup Batch1Demo Batch2Demo Batch3Demo BlobClobDemo \
DbConnDataSource DbConMDataSources ScrollIterDemo