#! /bin/sh
#############################################################################
# (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.
#############################################################################
# SCRIPT: bldrtn
# Builds HP-UX C++ routines (stored procedures and UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Determine the HP platform and set correct compile/link options
hpplat=`uname -m`
bitwidth=64
# Uncomment the following line to compile 32-bit applications
#bitwidth=32
if [ $hpplat = "ia64" ]; then
if [ $bitwidth = "64" ]; then
EXTRA_CFLAG="+DD64"
LIB="lib64"
else
EXTRA_CFLAG="+DD32"
LIB="lib32"
fi
else
if [ $bitwidth = "64" ]; then
EXTRA_CFLAG="+DA2.0W"
LIB="lib64"
else
EXTRA_CFLAG="+DA2.0N"
LIB="lib32"
fi
fi
# The runtime path is recommended for all applications.
# If you need to use SHLIB_PATH or LD_LIBRARY_PATH, unset
# the RUNTIME variable by commenting out the following line.
RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-Wl,+b$DB2PATH/$LIB"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2
fi
# Compile the program. First ensure it is coded with extern "C".
aCC $EXTRA_CFLAG +u1 +z -ext -mt -I$DB2PATH/include -c $1.C
# Link the program to create a shared library.
aCC $EXTRA_CFLAG -mt -b -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/$LIB -ldb2
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function