--- shlib/Makefile.in
+++ shlib/Makefile.in	2005-12-09 17:00:46.000000000 +0100
@@ -57,6 +57,7 @@
 libdir = @libdir@
 datadir = @datadir@
 localedir = $(datadir)/locale
+linkagedir = $(libdir)
 
 # Support an alternate destination root directory for package building
 DESTDIR =
@@ -181,13 +182,13 @@
 	-$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
 
 install: installdirs $(SHLIB_STATUS)
-	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
-	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
+	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -dd $(DESTDIR) -d $(libdir) -l $(linkagedir) -b $(bindir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
+	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -dd $(DESTDIR) -d $(libdir) -l $(linkagedir) -b $(bindir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
 	@echo install: you may need to run ldconfig
 
 uninstall:
-	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -U $(SHARED_HISTORY)
-	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -U $(SHARED_READLINE)
+	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -dd $(DESTDIR) -d $(libdir) -l $(linkagedir) -b $(bindir) -U $(SHARED_HISTORY)
+	$(SHELL) $(topdir)/support/shlib-install -O $(host_os) -dd $(DESTDIR) -d $(libdir) -l $(linkagedir) -b $(bindir) -U $(SHARED_READLINE)
 	@echo uninstall: you may need to run ldconfig
 
 clean mostlyclean:	force
--- support/shlib-install
+++ support/shlib-install	2005-12-09 17:05:28.000000000 +0100
@@ -3,7 +3,7 @@
 # shlib-install - install a shared library and do any necessary host-specific
 #		  post-installation configuration (like ldconfig)
 #
-# usage: shlib-install [-D] -O host_os -d installation-dir [-b bin-dir] -i install-prog [-U] library
+# usage: shlib-install [-D] -O host_os -d installation-dir [-l linkage-dir] [-b bin-dir] -i install-prog [-U] library
 #
 # Chet Ramey
 # chet@po.cwru.edu
@@ -12,10 +12,12 @@
 # defaults
 #
 INSTALLDIR=/usr/local/lib
+LINKAGEDIR=
 LDCONFIG=ldconfig
+DESTDIR=
 
 PROGNAME=`basename $0`
-USAGE="$PROGNAME [-D] -O host_os -d installation-dir [-b bin-dir] -i install-prog [-U] library"
+USAGE="$PROGNAME [-D] -O host_os -d installation-dir [-l linkage-dir] [-b bin-dir] -i install-prog [-U] library"
 
 # process options
 
@@ -23,14 +25,19 @@
 	case "$1" in
 	-O)	shift; host_os="$1"; shift ;;
 	-d)	shift; INSTALLDIR="$1"; shift ;;
+	-dd)	shift; DESTDIR=$1; shift ;;
 	-b)	shift; BINDIR="$1" ; shift ;;
 	-i)	shift; INSTALLPROG="$1" ; shift ;;
+	-l)	shift; LINKAGEDIR="$1" ; shift ;;
 	-D)	echo=echo ; shift ;;
 	-U)	uninstall=true ; shift ;;
 	-*)	echo "$USAGE" >&2 ; exit 2;;
 	*)	break ;;
 	esac
 done
+if [ -z "$LINKAGEDIR" ]; then
+	LINKAGEDIR="$INSTALLDIR"
+fi
 
 # set install target name
 LIBNAME="$1"
@@ -48,18 +55,18 @@
 # pre-install
 
 if [ -z "$uninstall" ]; then
-	${echo} $RM ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
-	if [ -f "$INSTALLDIR/$LIBNAME" ]; then
-		${echo} $MV $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
+	${echo} $RM ${DESTDIR}${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
+	if [ -f "${DESTDIR}$INSTALLDIR/$LIBNAME" ]; then
+		${echo} $MV ${DESTDIR}$INSTALLDIR/$LIBNAME ${DESTDIR}${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
 	fi
 fi
 
 # install/uninstall
 
 if [ -z "$uninstall" ] ; then
-	${echo} eval ${INSTALLPROG} $LIBNAME ${INSTALLDIR}/${LIBNAME}
+	${echo} eval ${INSTALLPROG} $LIBNAME ${DESTDIR}${INSTALLDIR}/${LIBNAME}
 else
-	${echo} ${RM} ${INSTALLDIR}/${LIBNAME}
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/${LIBNAME}
 fi
 
 # post-install/uninstall
@@ -70,7 +77,7 @@
 case "$host_os" in
 hpux*|darwin*|macosx*)
 	if [ -z "$uninstall" ]; then
-		chmod 555 ${INSTALLDIR}/${LIBNAME}
+		chmod 555 ${DESTDIR}${INSTALLDIR}/${LIBNAME}
 	fi ;;
 cygwin*)
 	IMPLIBNAME=`echo ${LIBNAME} \
@@ -108,8 +115,8 @@
 	LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'`	# libname.dylib
 esac
 
-INSTALL_LINK1='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK1'
-INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2'
+INSTALL_LINK1='${echo} cd ${DESTDIR}$INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK1'
+INSTALL_LINK2='${echo} cd ${DESTDIR}$INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2'
 
 #
 # Create symlinks to the installed library.  This section is incomplete.
@@ -117,27 +124,27 @@
 case "$host_os" in
 *linux*)
 	# libname.so.M -> libname.so.M.N
-	${echo} ${RM} ${INSTALLDIR}/$LINK2
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK2
 	if [ -z "$uninstall" ]; then
 		eval $INSTALL_LINK2
 	fi
 
 	# libname.so -> libname.so.M
-	${echo} ${RM} ${INSTALLDIR}/$LINK1
+	${echo} ${RM} ${DESTDIR}${LINKAGEDIR}/$LINK1
 	if [ -z "$uninstall" ]; then
-		${echo} cd $INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1
+		${echo} ln -s ${INSTALLDIR}/$LIBNAME ${DESTDIR}${LINKAGEDIR}/$LINK1
 	fi
 	;;
 
 bsdi4*|*gnu*|darwin*|macosx*|k*bsd*-gnu)
 	# libname.so.M -> libname.so.M.N
-	${echo} ${RM} ${INSTALLDIR}/$LINK2
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK2
 	if [ -z "$uninstall" ]; then
 		eval $INSTALL_LINK2
 	fi
 
 	# libname.so -> libname.so.M.N
-	${echo} ${RM} ${INSTALLDIR}/$LINK1
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1
 	if [ -z "$uninstall" ]; then
 		eval $INSTALL_LINK1
 	fi
@@ -145,7 +152,7 @@
 
 solaris2*|aix4.[2-9]*|osf*|irix[56]*|sysv[45]*|dgux*)
 	# libname.so -> libname.so.M
-	${echo} ${RM} ${INSTALLDIR}/$LINK1
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1
 	if [ -z "$uninstall" ]; then
 		eval $INSTALL_LINK1
 	fi
@@ -156,19 +163,19 @@
 freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
 	if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
 		# libname.so -> libname.so.M
-		${echo} ${RM} ${INSTALLDIR}/$LINK1
+		${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1
 		if [ -z "$uninstall" ]; then
 			eval $INSTALL_LINK1
 		fi
 	else
 		# libname.so.M -> libname.so.M.N
-		${echo} ${RM} ${INSTALLDIR}/$LINK2
+		${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK2
 		if [ -z "$uninstall" ]; then
 			eval $INSTALL_LINK2
 		fi
 
 		# libname.so -> libname.so.M.N
-		${echo} ${RM} ${INSTALLDIR}/$LINK1
+		${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1
 		if [ -z "$uninstall" ]; then
 			eval $INSTALL_LINK1
 		fi
@@ -177,7 +184,7 @@
 
 hpux1*)
 	# libname.sl -> libname.M
-	${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
+	${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1.sl
 	if [ -z "$uninstall" ]; then
 		eval $INSTALL_LINK1
 	fi