File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / support / shlib-install
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jul 30 08:16:46 2014 UTC (9 years, 11 months ago) by misho
Branches: readline, MAIN
CVS tags: v6_3, p6, HEAD
readline 6.3

    1: #! /bin/sh
    2: #
    3: # shlib-install - install a shared library and do any necessary host-specific
    4: #		  post-installation configuration (like ldconfig)
    5: #
    6: # usage: shlib-install [-D] -O host_os [-V host_vendor] -d installation-dir [-b bin-dir] -i install-prog [-U] library
    7: #
    8: # Chet Ramey
    9: # chet@po.cwru.edu
   10: 
   11: #
   12: # defaults
   13: #
   14: INSTALLDIR=/usr/local/lib
   15: LDCONFIG=ldconfig
   16: 
   17: PROGNAME=`basename $0`
   18: USAGE="$PROGNAME [-D] -O host_os [-V host_vendor] -d installation-dir [-b bin-dir] -i install-prog [-U] library"
   19: 
   20: # process options
   21: 
   22: while [ $# -gt 0 ]; do
   23: 	case "$1" in
   24: 	-O)	shift; host_os="$1"; shift ;;
   25: 	-V)	shift; host_vendor="$1"; shift ;;
   26: 	-d)	shift; INSTALLDIR="$1"; shift ;;
   27: 	-b)	shift; BINDIR="$1" ; shift ;;
   28: 	-i)	shift; INSTALLPROG="$1" ; shift ;;
   29: 	-D)	echo=echo ; shift ;;
   30: 	-U)	uninstall=true ; shift ;;
   31: 	-*)	echo "$USAGE" >&2 ; exit 2;;
   32: 	*)	break ;;
   33: 	esac
   34: done
   35: 
   36: # set install target name
   37: LIBNAME="$1"
   38: 
   39: if [ -z "$LIBNAME" ]; then
   40: 	echo "$USAGE" >&2
   41: 	exit 2
   42: fi
   43: 
   44: OLDSUFF=old
   45: MV=mv
   46: RM="rm -f"
   47: LN="ln -s"
   48: 
   49: # pre-install
   50: 
   51: if [ -z "$uninstall" ]; then
   52: 	${echo} $RM ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
   53: 	if [ -f "$INSTALLDIR/$LIBNAME" ]; then
   54: 		${echo} $MV $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
   55: 	fi
   56: fi
   57: 
   58: # install/uninstall
   59: 
   60: if [ -z "$uninstall" ] ; then
   61: 	${echo} eval ${INSTALLPROG} $LIBNAME ${INSTALLDIR}/${LIBNAME}
   62: else
   63: 	${echo} ${RM} ${INSTALLDIR}/${LIBNAME}
   64: fi
   65: 
   66: # post-install/uninstall
   67: 
   68: # HP-UX and Darwin/MacOS X require that a shared library have execute permission
   69: # Linux does, too, and ldd warns about it.  Solaris doesn't seem to mind,
   70: # but ldd still warns about it.
   71: # Cygwin installs both a dll (which must go in $BINDIR) and an implicit
   72: # link library (in $libdir)
   73: case "$host_os" in
   74: hpux*|darwin*|macosx*|linux*|solaris2*)
   75: 	if [ -z "$uninstall" ]; then
   76: 		chmod 555 ${INSTALLDIR}/${LIBNAME}
   77: 	fi ;;
   78: cygwin*|mingw*)
   79: 	IMPLIBNAME=`echo ${LIBNAME} \
   80: 		| sed -e 's,^cyg,lib,' -e 's,[0-9]*.dll$,.dll.a,'`
   81: 	if [ -z "$uninstall" ]; then
   82: 		${echo} $RM ${BINDIR}/${LIBNAME}.${OLDSUFF}
   83: 		if [ -f "$BINDIR/$LIBNAME" ]; then
   84: 			${echo} $MV $BINDIR/$LIBNAME $BINDIR/$LIBNAME.$OLDSUFF
   85: 		fi
   86: 		${echo} $MV ${INSTALLDIR}/${LIBNAME} ${BINDIR}/${LIBNAME}
   87: 		${echo} chmod a+x ${BINDIR}/${LIBNAME}
   88: 		${echo} eval ${INSTALLPROG} ${LIBNAME}.a \
   89: 			${INSTALLDIR}/${IMPLIBNAME}
   90: 	else
   91: 		${echo} ${RM} ${BINDIR}/${LIBNAME}
   92: 		${echo} ${RM} ${INSTALLDIR}/${IMPLIBNAME}
   93: 	fi ;;
   94: 
   95: *)	;;
   96: esac
   97: 
   98: case "$LIBNAME" in
   99: *.*.[0-9].[0-9])	# libname.so.M.N
  100: 	LINK2=`echo $LIBNAME | sed 's:\(.*\..*\.[0-9]\)\.[0-9]:\1:'`	# libname.so.M
  101: 	LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]\.[0-9]:\1:'`	# libname.so
  102: 	;;
  103: *.*.[0-9])		# libname.so.M
  104: 	LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]:\1:'`		# libname.so
  105: 	;;
  106: *.[0-9])		# libname.M
  107: 	LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]:\1:'`		# libname
  108: 	;;
  109: *.[0-9].[0-9].dylib)	# libname.M.N.dylib
  110: 	LINK2=`echo $LIBNAME | sed 's:\(.*\.[0-9]\)\.[0-9]:\1:'`	# libname.M.dylib
  111: 	LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'`	# libname.dylib
  112: esac
  113: 
  114: INSTALL_LINK1='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK1'
  115: INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2'
  116: 
  117: #
  118: # Create symlinks to the installed library.  This section is incomplete.
  119: #
  120: case "$host_os-$host_vendor" in
  121: *linux*|freebsd*-gentoo)
  122: 	# libname.so.M -> libname.so.M.N
  123: 	${echo} ${RM} ${INSTALLDIR}/$LINK2
  124: 	if [ -z "$uninstall" ]; then
  125: 		eval $INSTALL_LINK2
  126: 	fi
  127: 
  128: 	# libname.so -> libname.so.M
  129: 	${echo} ${RM} ${INSTALLDIR}/$LINK1
  130: 	if [ -z "$uninstall" ]; then
  131: 		${echo} cd $INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1
  132: 	fi
  133: 	;;
  134: 
  135: bsdi4*|*gnu*|darwin*|macosx*|netbsd*|mirbsd*)
  136: 	# libname.so.M -> libname.so.M.N
  137: 	${echo} ${RM} ${INSTALLDIR}/$LINK2
  138: 	if [ -z "$uninstall" ]; then
  139: 		eval $INSTALL_LINK2
  140: 	fi
  141: 
  142: 	# libname.so -> libname.so.M.N
  143: 	${echo} ${RM} ${INSTALLDIR}/$LINK1
  144: 	if [ -z "$uninstall" ]; then
  145: 		eval $INSTALL_LINK1
  146: 	fi
  147: 	;;
  148: 
  149: solaris2*|aix4.[2-9]*|aix[5-9]*|osf*|irix[56]*|sysv[45]*|dgux*|interix*)
  150: 	# libname.so -> libname.so.M
  151: 	${echo} ${RM} ${INSTALLDIR}/$LINK1
  152: 	if [ -z "$uninstall" ]; then
  153: 		eval $INSTALL_LINK1
  154: 	fi
  155: 	;;
  156: 
  157: 
  158: # FreeBSD 3.x and above can have either a.out or ELF shared libraries
  159: freebsd3*|freebsdaout*)
  160: 	if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
  161: 		# libname.so -> libname.so.M
  162: 		${echo} ${RM} ${INSTALLDIR}/$LINK1
  163: 		if [ -z "$uninstall" ]; then
  164: 			eval $INSTALL_LINK1
  165: 		fi
  166: 	else
  167: 		# libname.so.M -> libname.so.M.N
  168: 		${echo} ${RM} ${INSTALLDIR}/$LINK2
  169: 		if [ -z "$uninstall" ]; then
  170: 			eval $INSTALL_LINK2
  171: 		fi
  172: 
  173: 		# libname.so -> libname.so.M.N
  174: 		${echo} ${RM} ${INSTALLDIR}/$LINK1
  175: 		if [ -z "$uninstall" ]; then
  176: 			eval $INSTALL_LINK1
  177: 		fi
  178: 	fi
  179: 	;;
  180: 
  181: freebsd[4-9]*|freebsd1[0-9]*|freebsdelf*|dragonfly*)
  182: 	# libname.so -> libname.so.M
  183: 	${echo} ${RM} ${INSTALLDIR}/$LINK1
  184: 	if [ -z "$uninstall" ]; then
  185: 		eval $INSTALL_LINK1
  186: 	fi
  187: 	;;
  188: 	
  189: hpux1*)
  190: 	# libname.sl -> libname.M
  191: 	${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
  192: 	if [ -z "$uninstall" ]; then
  193: 		eval $INSTALL_LINK1
  194: 	fi
  195: 	;;
  196: 
  197: cygwin*|mingw*)
  198: 	# Links to .dlls don't work.  Hence shobj-conf used DLLVERSION.dll
  199: 	# instead of so.SHLIB_MAJOR.SHLIB_MINOR.  The postinstall above
  200: 	# took care of everything else.
  201: 	;;
  202: 
  203: *)	;;
  204: esac
  205: 
  206: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>