#!/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