#!/bin/sh

if test "$EMPRESSPATH" = "" 
then
	echo "EMPRESSPATH not set"
	exit 1

elif test ! -d $EMPRESSPATH
then
	echo "invalid EMPRESSPATH"
	exit 1
fi

USAGE="*** Usage *** arlib  {-extract | -replace | append} lib [obj ...]"
case $# in
  0 | 1)
	echo "$USAGE"	
	exit 1
	;;
esac

. $EMPRESSPATH/config/options

X=$MSSYS_PLATFORM

case $MSSYS_PLATFORM in
 SYS_OS_WIN32)
	case "$MS_XTARGET" in
	   nto-ppc)	X=SYS_OS_WIN32_CROSS_PPCNTO
			;;
	esac
	;;
esac


case $X in
   "SYS_OS_WIN32")
	TMPLIB=tmplib.lib
	rm -fr $TMPLIB
	case $1 in
	  -extract)
		shift
		LIB=$1
		shift

		case $1 in
		  "")	# nothing in the list; assume all the object files
			LIST=`lib /nologo /list $LIB`
			;;
		  *)	LIST=$*
			;;
		esac

		for I in $LIST
		do
			lib /NOLOGO /EXTRACT:$I $LIB
		done
		;;
	  -replace)
		shift
		LIB=$1
		shift
		if [ -f $LIB ]
		then
			cp $LIB $TMPLIB
			lib /NOLOGO /IGNORE:4221 /IGNORE:4006 $TMPLIB "$@" 
		else
			lib /NOLOGO /IGNORE:4221 /IGNORE:4006 /OUT:$TMPLIB "$@" 
		fi
		mv $TMPLIB $LIB
		;;
	  -append)
		shift
		LIB=$1
		shift
		cp $LIB $TMPLIB
		lib /NOLOGO $TMPLIB "$@"
		mv $TMPLIB $LIB
		;;
	  *)
		echo "$USAGE"
		exit 1
		;;
	esac
	;;

   "SYS_OS_UNIX_QNX_OLD")	
	# There is no such label. This section of code is used in
	# the older version of QNX
	LIB=
	case $1 in
	  -extract)
		shift
		LIB=$1
		shift
		LIST=
		for I 
		do
			LIST="$LIST :$I"
		done
		case $LIST in
			"")
				exec wlib -q -b -x $LIB
				;;
			*)
				exec wlib  -q -b $LIB $LIST
				;;
		esac
		;;
	  -replace | -append )
		shift
		LIB=$1
		shift
		exec wlib -p=64 -q -b $LIB +- "$@"
		;;
	  *)
		echo "$USAGE"
		exit 1
		;;
	esac

		;;
   SYS_OS_UNIX_QNX)
	case $1 in
	  -extract)
		shift
		ar xq "$@"
		rm -f *SYMDEF *ELEL* > /dev/null 2>&1
		;;
	  -replace)
		shift
		exec ar rqc "$@"
		;;
	  -append)
		shift
		exec ar rqc "$@"
		;;
	  *)
		echo "$USAGE"
		exit 1
		;;
	esac
	;;
   SYS_OS_WIN32_CROSS_PPCNTO)
	case $1 in
	  -extract)
		shift
		ntoppc-ar x "$@"
		;;
	  -replace)
		shift
		exec ntoppc-ar r "$@"
		;;
	  -append)
		shift
		exec ntoppc-ar q "$@"
		;;
	  *)
		echo "$USAGE"
		exit 1
		;;
	esac
	;;
   *)
	case $1 in
	  -extract)
		shift
		ar x "$@"
		rm -f *SYMDEF *ELEL* > /dev/null 2>&1
		;;
	  -replace)
		shift
		exec ar r "$@"
		;;
	  -append)
		shift
		exec ar q "$@"
		;;
	  *)
		echo "$USAGE"
		exit 1
		;;
	esac
	;;
esac
