Net2/usr/src/contrib/isode/util/make-lib.sh

: run this script through /bin/sh

M=BSD42 L= O= S= Q= SHD= MAJ= MIN=

while [ $# -gt 0 ]
do
    A="$1"
    case $A in
	-bsd42|-mips)
		M=BSD42
		;;
	-shared)SHD=T
		;;

	-sys5)	M=SYS5
		;;

	-aix)	M=AIX
		;;

	-ros)	M=ROS
		;;

	-ranlib)
		case $M in
		    BSD42|ROS)
			    echo ranlib "$L"
			    case "$L" in
				/*)	(cd /usr/tmp; ranlib "$L")
					;;

				*)	ranlib "$L"
					;;
			    esac
			    ;;

		    SYS5|AIX|old)
			    ;;

		    *)	    echo "make-lib: mode botch" 1>&2
			    exit 1
			    ;;
		esac
		exit 0
		;;

	-quick)	Q=T
		;;

	-major) MAJ="$2"
		shift
		;;
	-minor) MIN="$2"
		shift
		;;
	-*)	S="$S`echo $A | sed -e s%-%%`"
		;;

	*)	if [ "x$L" = x ]; then
		    L="$A"
		else
		    O="$O $A"
		fi
		;;
    esac
    shift
done

case $M in
    BSD42|ROS)
	    if [ "x$SHD" = xT ]; then
		if [ "$M" = ROS ]; then
		    echo "Can't build shared libraries for ROS" 1>&2
		    exit 1
		fi
		if [ "x$MAJ" = x -o "x$MIN" = x ]; then
			echo "Missing major or minor number for library" 1>&2
			exit 1
		fi
		rm -rf tmp-shared
		mkdir tmp-shared
		case "$L" in
			/*) LP="$L";;
			*) LP="../$L";;
		esac
		(cd tmp-shared; ar x "$LP"
		LSO="`echo $LP | sed 's%.a$%%'`".so.$MAJ.$MIN
		echo ld -o "$LSO" -assert pure-text *.o
		ld -o "$LSO" -assert pure-text *.o
		)
		rm -rf tmp-shared
	    else
		echo ar q"$S" "$L" $O
		ar q"$S" "$L" $O
		if [ "x$Q" != xT ]; then
		    echo ranlib "$L"
		    ranlib "$L"
		fi
	    fi
	    ;;

    SYS5)   if [ "x$SHD" = xT ]; then
		echo "Can't build shared libraries for Sys 5 (yet)" 1>&2
		exit 1
	    fi
	    echo ar ql"$S" "$L" $O
	    ar ql"$S" "$L" $O
	    ;;

    AIX)    if [ "x$SHD" = xT ]; then
		echo "Can't build shared libraries for AIX (yet)" 1>&2
		exit 1
	    fi
	    echo ar rlv"$S" "$L" \`lorder $O \| tsort\`
	    ar rlv"$S" "$L" `lorder $O | tsort`
	    ;;

    old)    if [ "x$SHD" = xT ]; then
		echo "Can't build shared libraries for old style" 1>&2
		exit 1
	    fi
	    echo ar r"$S" "$L" \`lorder $O \| tsort\`
	    ar r"$S" "$L" `lorder $O | tsort`
	    ;;

    *)	    echo "make-lib: mode botch" 1>&2
	    exit 1
	    ;;
esac

exit 0