免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1374 | 回复: 0
打印 上一主题 下一主题

这样的shell怎么看 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-05 16:42 |只看该作者 |倒序浏览
以下是一段oracle,  $ORACLE_HOME/bin/genclntsh 的code, 请教大家,很多关键步骤怎么解读? 谢谢。


# Network
LDFLAGS="`cat ${OLIB}/ldflags`"
LNENT=
[ -r ${OLIB}/libnent10.a ] && LNENT="-lnent10"
# NZ
LNZ=
[ -r ${OLIB}/libnnz10.so ] && LNZ="-lnnz10"
LNCRYPT="-lnsslb10 -lncrypt10 -ln10 -lnl10 -lnro10"
LNETWORK="${LDFLAGS} ${LNENT} ${LNZ} ${LNCRYPT} ${LDFLAGS}"        // 这里各字符串连接起来吗? 还是有其他的作用?

#
# Create lists of symbols to pass to ld
SYMS_OCIC="`listf rdbms` ${LCLIENT}"
SYMS_SQL="`listf precomp` ${LSQL}"
SYMS_PLSQL="`listf plsql` ${LPLSQL}"
SYMS_LDAP="`listf ldap` ${LLDAP}"
SYMS_NETWORK="`listf network` ${LNETWORK}"
SYMS_XDK="`listf xdk` ${LXDK}"

#
# Library names and locations
CLNT_NAM=clntsh                                        # (short) library name
CLNT_VER=10.1                                        # library version number
CLNT_LNK=lib${CLNT_NAM}.so                        # name of symlink to library
CLNT_LNK_NPT=lib${CLNT_NAM}_nopthread.so
CLNT_LIB=${CLNT_LNK}.${CLNT_VER}                # actual library file name
CLNT_LIB_NPT=${CLNT_LNK_NPT}.${CLNT_VER}
LIB_DIR=${OLIB}                                 # lib. destination directory

if [ ! -z "$SRCHOME" ]
then
        LIB_DIR=${SRCHOME}/rdbms/${ULIB}        # lib. destination directory
fi

#
# If in ADE, the library may be a symlink to the label server.  If so,
# pull it over...
if [ -h ${LIB_DIR}/${CLNT_LIB} ]
then
        echo "Copying ${CLNT_LIB} to local disk"
        cp -p ${LIB_DIR}/${CLNT_LIB} ${LIB_DIR}/${CLNT_LIB}.tmp
        Remove_File ${LIB_DIR}/${CLNT_LIB}
        mv ${LIB_DIR}/${CLNT_LIB}.tmp ${LIB_DIR}/${CLNT_LIB}
        Check_Status $? "Failed to move ${CLNT_LIB}.tmp"
        chmod +wx ${LIB_DIR}/${CLNT_LIB}
        Check_Status $? "Failed to make ${CLNT_LIB}.tmp writeable"
fi

#
# Define the name of the map file
MAPFILE=${LIB_DIR}/${CLNT_NAM}.map
MAPFILE_NPT=${LIB_DIR}/${CLNT_NAM}_nopthread.map

# Name of shared library being created
SHLIBNAME="${LIB_DIR}/${CLNT_LIB}"

#
# Linker command and options
#LD="ld -v -G -b +s +n -y semtimedop -L${OLIB}"  # shared library link command
#added by ramaraj
#LD="ld -v -G -b +s -L${ORACLE_HOME}/${LIB} -Bsymbolic"
LD="ld -v -G -b +s +n -y semtimedop -L${OLIB} -Bsymbolic"  # shared library link command
LD_RUNTIME=
LD_OPT="+h ${CLNT_LIB}"                         # name inserted into library
LD_OUT="-o ${LIB_DIR}/${CLNT_LIB}"                # output specification
LD_OUT_NPT="-o ${LIB_DIR}/${CLNT_LNK_NPT}"
LD_SELF_CONTAINED="-z "


#
# Oracle library dependencies
DEF_ON="${RDBMSLIB}/kpudfo.o"
NAUTAB="${OLIB}/nautab.o"
NAETAB="${OLIB}/naeet.o ${OLIB}/naect.o"
NAEDHS="${OLIB}/naedhs.o"
XAONDY="${RDBMSLIB}/xaondy.o"

OLIBS="${LCLIENT}"
OLIBS="${OLIBS} ${LSQL}"
OLIBS="${OLIBS} ${LNETWORK}"                                // 这里怎么理解? library depencencies是怎么起作用的?
OLIBS="${OLIBS} ${LCLIENT}"
OLIBS="${OLIBS} ${LCOMMON}"
OLIBS="${OLIBS} ${LGENERIC}"
OLIBS="${OLIBS} ${LMM}"
OLIBS="${OLIBS} ${XAONDY}"
OLIBS="${OLIBS} ${LNETWORK}"
OLIBS="${OLIBS} ${LCLIENT}"
OLIBS="${OLIBS} ${LCOMMON}"
OLIBS="${OLIBS} ${LGENERIC}"
OLIBS="${OLIBS} ${LTRACE}"
OLIBS="${OLIBS} ${LSNLSRTL}"
OLIBS="${OLIBS} ${LNLSRTL}"
OLIBS="${OLIBS} ${LCORE}"
OLIBS="${OLIBS} ${LSNLSRTL}"
OLIBS="${OLIBS} ${LNLSRTL}"
OLIBS="${OLIBS} ${LUNLSRTL}"
OLIBS="${OLIBS} ${LXDK}"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP