#!/bin/sh
PATH=/usr/bin:/usr/ccs/bin	export PATH

echo "ORACLE_HOME=$ORACLE_HOME"
echo "Building libclntsh.so ..."

#
# each product MUST provide a $PRODUCT/admin/shrept.lst
#

PRODUCTS="rdbms precomp";
errCount=0

for product in $PRODUCTS
do
	SHREPT=$ORACLE_HOME/$product/admin/shrept.lst

	if [ ! -f $SHREPT ]; then
		echo "Error: could not locate $SHREPT file"
		errCount=1
	fi
done

if [ "$errCount" != "0" ]; then
	exit 1
fi

listf_rdbms() {
	entryList=$ORACLE_HOME/rdbms/admin/shrept.lst
	grep -v '#' $entryList | grep rdbms | awk '{print $3}'
}

listf_precomp() {
	entryList=$ORACLE_HOME/precomp/admin/shrept.lst
	grep -v '#' $entryList | grep precomp | awk '{print $3}'
}

#
# Function used to convert lists of symbols to proper format for linker

fmt_syms() { awk '/[ \t]*#/	{next}\
				{printf " -u %s", $1}' ; }

#
# Create lists of symbols to pass to ld

SYMS_OCIC="`listf_rdbms | fmt_syms` -lclient"
SYMS_SQL="`listf_precomp | fmt_syms` -lsql"

#
# Library names and locations

CLNT_LIB=libclntsh.so

LIB_DIR=../../lib

#
# Linker command and options

LD="ld -G -z text -L${ORACLE_HOME}/lib"		# shared library link command
LD_OPT="-h ${CLNT_LIB}"				# name inserted into library
LD_OUT="-o ${LIB_DIR}/${CLNT_LIB}"		# output specification
LD_SELF_CONTAINED="-z defs"

#
# Oracle library dependencies

DEF_ON="${ORACLE_HOME}/rdbms/lib/kpudfo.o"
SSDBED="${ORACLE_HOME}/rdbms/lib/ssdbaed.o"
NAFLAGS=`cat ${ORACLE_HOME}/lib/naldflgs`
NAUTAB="${ORACLE_HOME}/lib/nautab.o"
NAETAB="${ORACLE_HOME}/lib/naeet.o ${ORACLE_HOME}/lib/naect.o"
NAEDHS="${ORACLE_HOME}/lib/naedhs.o" 

OLIBS="-lclient -lsql -lnetv2 -lnttcp -lnetwork -lncr -lnetv2 -lnttcp -lnetwork -lclient -lcommon -lgeneric -lmm ${ORACLE_HOME}/rdbms/lib/xaondy.o -lnlsrtl3 -lcore4 -lnlsrtl3 -lcore4 -lnlsrtl3 -lnetv2 -lnttcp -lnetwork -lncr -lnetv2 -lnttcp -lnetwork -lclient -lcommon -lgeneric -lepc -lnlsrtl3 -lcore4 -lnlsrtl3 -lcore4 -lnlsrtl3"

SYSLIBS=`cat ${ORACLE_HOME}/lib/sysliblist`" -laio -lm -lc"

# Create library

${LD} ${LD_OPT} ${LD_OUT} ${LD_SELF_CONTAINED} \
${DEF_ON} ${SSDBED} ${NAFLAGS} ${NAUTAB} ${NAETAB} ${NAEDHS} ${SYMS_SQL} \
${SYMS_OCIC} ${OLIBS} ${SYSLIBS}

echo "Done."

exit 0
