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