changeset 3782:55a13d6d2625

[project @ 2001-02-07 07:45:32 by jwe]
author jwe
date Wed, 07 Feb 2001 07:45:32 +0000
parents 607c268fade8
children 4ab12d923395
files readline/support/shlib-install readline/support/shobj-conf
diffstat 2 files changed, 558 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readline/support/shlib-install	Wed Feb 07 07:45:32 2001 +0000
@@ -0,0 +1,152 @@
+#! /bin/sh
+#
+# 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 -i install-prog [-U] library
+#
+# Chet Ramey
+# chet@po.cwru.edu
+
+#
+# defaults
+#
+INSTALLDIR=/usr/local/lib
+LDCONFIG=ldconfig
+
+PROGNAME=`basename $0`
+USAGE="$PROGNAME [-D] -O host_os -d installation-dir -i install-prog [-U] library"
+
+# process options
+
+while [ $# -gt 0 ]; do
+	case "$1" in
+	-O)	shift; host_os="$1"; shift ;;
+	-d)	shift; INSTALLDIR="$1"; shift ;;
+	-i)	shift; INSTALLPROG="$1" ; shift ;;
+	-D)	echo=echo ; shift ;;
+	-U)	uninstall=true ; shift ;;
+	-*)	echo "$USAGE" >&2 ; exit 2;;
+	*)	break ;;
+	esac
+done
+
+# set install target name
+LIBNAME="$1"
+
+if [ -z "$LIBNAME" ]; then
+	echo "$USAGE" >&2
+	exit 2
+fi
+
+OLDSUFF=old
+MV=mv
+RM="rm -f"
+LN="ln -s"
+
+# pre-install
+
+if [ -z "$uninstall" ]; then
+	${echo} $RM ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
+	if [ -f "$INSTALLDIR/$LIBNAME" ]; then
+		${echo} $MV $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
+	fi
+fi
+
+# install/uninstall
+
+if [ -z "$uninstall" ] ; then
+	${echo} eval ${INSTALLPROG} $LIBNAME ${INSTALLDIR}/${LIBNAME}
+else
+	${echo} ${RM} ${INSTALLDIR}/${LIBNAME}
+fi
+
+# post-install/uninstall
+
+# HP-UX requires that a shared library have execute permission
+case "$host_os" in
+hpux*)	if [ -z "$uninstall" ]; then
+		chmod 555 ${INSTALLDIR}/${LIBNAME}
+	fi ;;
+*)	;;
+esac
+
+case "$LIBNAME" in
+*.*.[0-9].[0-9])	# libname.so.M.N
+	LINK2=`echo $LIBNAME | sed 's:\(.*\..*\.[0-9]\)\.[0-9]:\1:'`	# libname.so.M
+	LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]\.[0-9]:\1:'`	# libname.so
+	;;
+*.*.[0-9])		# libname.so.M
+	LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]:\1:'`		# libname.so
+	;;
+*.[0-9])		# libname.M
+	LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]:\1:'`		# libname
+	;;
+esac
+
+INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1'
+INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2'
+
+#
+# Create symlinks to the installed library.  This section is incomplete.
+#
+case "$host_os" in
+*linux*|bsdi4*)
+	# libname.so.M -> libname.so.M.N
+	${echo} ${RM} ${INSTALLDIR}/$LINK2
+	if [ -z "$uninstall" ]; then
+		${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
+	fi
+
+	# libname.so -> libname.so.M.N
+	${echo} ${RM} ${INSTALLDIR}/$LINK1
+	if [ -z "$uninstall" ]; then
+		${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+	fi
+	;;
+
+solaris2*|aix4.[2-9]*|osf*|irix[56]*)
+	# libname.so -> libname.so.M
+	${echo} ${RM} ${INSTALLDIR}/$LINK1
+	if [ -z "$uninstall" ]; then
+		${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+	fi
+	;;
+
+
+# FreeBSD 3.x can have either a.out or ELF shared libraries
+freebsd3*)
+	if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
+		# libname.so -> libname.so.M
+		${echo} ${RM} ${INSTALLDIR}/$LINK1
+		if [ -z "$uninstall" ]; then
+			${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+		fi
+	else
+		# libname.so.M -> libname.so.M.N
+		${echo} ${RM} ${INSTALLDIR}/$LINK2
+		if [ -z "$uninstall" ]; then
+			${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
+		fi
+
+		# libname.so -> libname.so.M.N
+		${echo} ${RM} ${INSTALLDIR}/$LINK1
+		if [ -z "$uninstall" ]; then
+			${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+		fi
+	fi
+	;;
+
+hpux1*)
+	# libname.sl -> libname.M
+	${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
+	if [ -z "$uninstall" ]; then
+#		${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl
+		${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}
+	fi
+	;;
+
+*)	;;
+esac
+
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readline/support/shobj-conf	Wed Feb 07 07:45:32 2001 +0000
@@ -0,0 +1,406 @@
+#! /bin/sh
+#
+# shobj-conf -- output a series of variable assignments to be substituted
+#		into a Makefile by configure which specify system-dependent
+#		information for creating shared objects that may be loaded
+#		into bash with `enable -f'
+#
+# usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor
+#
+# Chet Ramey
+# chet@po.cwru.edu
+
+#
+# defaults
+#
+SHOBJ_STATUS=supported
+SHLIB_STATUS=supported
+
+SHOBJ_CC=cc
+SHOBJ_CFLAGS=
+SHOBJ_LD=
+SHOBJ_LDFLAGS=
+SHOBJ_XLDFLAGS=
+SHOBJ_LIBS=
+
+SHLIB_XLDFLAGS=
+SHLIB_LIBS=
+SHLIB_LIBSUFF='so'
+
+SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
+
+PROGNAME=`basename $0`
+USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
+
+while [ $# -gt 0 ]; do
+	case "$1" in
+	-C)	shift; SHOBJ_CC="$1"; shift ;;
+	-c)	shift; host_cpu="$1"; shift ;;
+	-o)	shift; host_os="$1"; shift ;;
+	-v)	shift; host_vendor="$1"; shift ;;
+	*)	echo "$USAGE" >&2 ; exit 2;;
+	esac
+done
+
+case "${host_os}-${SHOBJ_CC}" in
+sunos4*-*gcc*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD=/usr/bin/ld
+	SHOBJ_LDFLAGS='-assert pure-text'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	;;
+
+sunos4*)
+	SHOBJ_CFLAGS=-pic
+	SHOBJ_LD=/usr/bin/ld
+	SHOBJ_LDFLAGS='-assert pure-text'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	;;
+
+sunos5*-*gcc*|solaris2*-*gcc*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
+
+#	SHLIB_XLDFLAGS='-R $(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sunos5*|solaris2*)
+	SHOBJ_CFLAGS='-K pic'
+	SHOBJ_LD=/usr/ccs/bin/ld
+	SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
+
+#	SHLIB_XLDFLAGS='-R $(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+freebsd2* | netbsd* | openbsd*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-x -Bshareable'
+
+	SHLIB_XLDFLAGS='-R$(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	;;
+
+# FreeBSD-3.x can have either a.out or ELF object files
+#freebsd3*)
+#	SHOBJ_CFLAGS=-fpic
+#	SHOBJ_LD='${CC}'
+#	SHOBJ_LDFLAGS='-shared'
+#
+#	SHLIB_XLDFLAGS='-R$(libdir)'
+#	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+#	;;
+
+# FreeBSD-3.x ELF
+freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD='${CC}'
+
+	if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
+		SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+		SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
+		SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	else
+		SHOBJ_LDFLAGS='-shared'
+
+		SHLIB_XLDFLAGS='-R$(libdir)'
+		SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	fi
+	;;
+# All versions of Linux or the semi-mythical GNU Hurd.
+linux*|gnu*)
+	SHOBJ_CFLAGS=-fPIC
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+	SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	;;
+
+bsdi2*)
+	SHOBJ_CC=shlicc2
+	SHOBJ_CFLAGS=
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS=-r
+	SHOBJ_LIBS=-lc_s.2.1.0
+
+	# BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
+	# the ass -- they require changing {/usr/lib,etc}/shlib.map on
+	# each system, and the library creation process is byzantine
+	SHLIB_STATUS=unsupported
+	;;
+
+bsdi3*)
+	SHOBJ_CC=shlicc2
+	SHOBJ_CFLAGS=
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS=-r
+	SHOBJ_LIBS=-lc_s.3.0.0
+
+	# BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
+	# the ass -- they require changing {/usr/lib,etc}/shlib.map on
+	# each system, and the library creation process is byzantine
+	SHLIB_STATUS=unsupported
+	;;
+
+bsdi4*)
+	# BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
+	# shared libraries.  gcc 2.x is the standard compiler, and the
+	# `normal' gcc options should work as they do in Linux.
+
+	SHOBJ_CFLAGS=-fPIC
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+	SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+	;;
+
+osf*-*gcc*)
+	# Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+	SHLIB_XLDFLAGS='-rpath $(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+osf*)
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
+
+	SHLIB_XLDFLAGS='-rpath $(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+aix4.[2-9]*-*gcc*)		# lightly tested by jik@cisco.com
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD='ld'
+	SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
+	SHOBJ_XLDFLAGS='-G'
+
+	SHLIB_XLDFLAGS='-bM:SRE'
+	SHLIB_LIBS='-lcurses -lc'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+aix4.[2-9]*)
+	SHOBJ_CFLAGS=-K
+	SHOBJ_LD='ld'
+	SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
+	SHOBJ_XLDFLAGS='-G'
+
+	SHLIB_XLDFLAGS='-bM:SRE'
+	SHLIB_LIBS='-lcurses -lc'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+#
+# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
+#
+irix[56]*-*gcc*)
+	SHOBJ_CFLAGS='-fpic'
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+	SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+irix[56]*)
+	SHOBJ_CFLAGS='-K PIC'
+	SHOBJ_LD=ld
+#	SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
+#	Change from David Kaelbling <drk@sgi.com>.  If you have problems,
+#	remove the `-no_unresolved'
+	SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
+
+	SHLIB_XLDFLAGS='-rpath $(libdir)'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+hpux9*-*gcc*)
+	# must use gcc; the bundled cc cannot compile PIC code
+	SHOBJ_CFLAGS='-fpic'
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
+
+	SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
+	SHLIB_LIBSUFF='sl'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+hpux9*)
+	SHOBJ_STATUS=unsupported
+	SHLIB_STATUS=unsupported
+	;;
+
+hpux10*-*gcc*)
+	# must use gcc; the bundled cc cannot compile PIC code
+	SHOBJ_CFLAGS='-fpic'
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
+
+	SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
+	SHLIB_LIBSUFF='sl'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+hpux10*)
+	SHOBJ_STATUS=unsupported
+	SHLIB_STATUS=unsupported
+
+	# If you are using the HP ANSI C compiler, you can uncomment and use
+	# this code
+#	SHOBJ_STATUS=unsupported
+#	SHLIB_STATUS=unsupported
+#
+#	SHOBJ_CFLAGS='+z'
+#	SHOBJ_LD='ld'
+#	SHOBJ_LDFLAGS='-b'
+#
+#	SHLIB_XLDFLAGS=''
+#	SHLIB_LIBSUFF='sl'
+#	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'	
+	;;
+
+hpux11*-*gcc*)
+	# must use gcc; the bundled cc cannot compile PIC code
+	SHOBJ_CFLAGS='-fpic'
+	SHOBJ_LD='${CC}'
+#	SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
+	SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
+
+	SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
+	SHLIB_LIBSUFF='sl'
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+hpux11*)
+	SHOBJ_STATUS=unsupported
+	SHLIB_STATUS=unsupported
+
+	# If you are using the HP ANSI C compiler, you can uncomment and use
+	# this code
+#	SHOBJ_STATUS=unsupported
+#	SHLIB_STATUS=unsupported
+#
+#	SHOBJ_CFLAGS='+z'
+#	SHOBJ_LD='ld'
+#	SHOBJ_LDFLAGS='-b'
+#
+#	SHLIB_XLDFLAGS=''
+#	SHLIB_LIBSUFF='sl'
+#	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'	
+
+	;;
+
+sysv4*-*gcc*)
+	SHOBJ_CFLAGS=-shared
+	SHOBJ_LDFLAGS='-shared -h $@'
+	SHOBJ_LD='${CC}'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sysv4*)
+	SHOBJ_CFLAGS='-K PIC'
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-dy -z text -G -h $@'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sco3.2v5*-*gcc*)
+	SHOBJ_CFLAGS='-fpic'		# DEFAULTS TO ELF
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sco3.2v5*)
+	SHOBJ_CFLAGS='-K pic -b elf'
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sysv5uw7*-*gcc*)
+	SHOBJ_CFLAGS='-fpic'
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+sysv5uw7*)
+	SHOBJ_CFLAGS='-K PIC'
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-G -dy -z text -h $@'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+	
+dgux*-*gcc*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+dgux*)
+	SHOBJ_CFLAGS='-K pic'
+	SHOBJ_LD=ld
+	SHOBJ_LDFLAGS='-G -dy -h $@'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+msdos*)
+	SHOBJ_STATUS=unsupported
+	SHLIB_STATUS=unsupported
+	;;
+
+#
+# Rely on correct gcc configuration for everything else
+#
+*-*gcc*)
+	SHOBJ_CFLAGS=-fpic
+	SHOBJ_LD='${CC}'
+	SHOBJ_LDFLAGS='-shared'
+
+	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
+	;;
+
+*)
+	SHOBJ_STATUS=unsupported
+	SHLIB_STATUS=unsupported
+	;;
+
+esac
+
+echo SHOBJ_CC=\'"$SHOBJ_CC"\'
+echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
+echo SHOBJ_LD=\'"$SHOBJ_LD"\'
+echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
+echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
+echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
+
+echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
+echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
+echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
+echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
+
+echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
+echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
+
+exit 0