#! /bin/sh

# install the A/UX version of gcc in either /usr/local/{bin,lib} or
# /usr/local/Gnu/{lib}. The install script takes two arguments:
# first, the binary directory; second, the lib directory. Thus, this
# script should be run as:

# install-aux-gcc /usr/local/bin /usr/local/lib

# or

# install-aux-gcc /usr/local/Gnu /usr/local/Gnu/lib

# other values for $1 and $2 are not supported (they may be in the future,
# if I can figure out a good way of doing runtime fixup on the location
# strings embedded in the various gcc binaries)

# There is an optional third argument: where the man pages go. If not
# specified, this is /usr/man/l_man/man1.

MANDIR=${3-${MANDIR-/usr/catman/l_man/man1}}

basedir=`pwd`
version=2.5.7

case "$1" in
	"/usr/local/bin") break;;
	"/usr/local/Gnu") break;;
	*) echo "binary directory must be /usr/local/bin or /usr/local/Gnu"
	   exit ;;
esac

case $2 in
	"/usr/local/lib") break;;
	"/usr/local/Gnu/lib") break;;
	*) echo "library directory must be /usr/local/lib or /usr/local/Gnu/lib"
	   exit ;;
esac

PATH=.:$1:$PATH
export PATH

# arguments checked; go to work

case $1 in
	"/usr/local/bin")
		if [ ! -d /usr/local/bin ]; then mkdir /usr/local/bin; fi
		cd bin.bin
		# hack to work around problem in cpio
		ls | (cd /usr/local/bin; xargs rm -f)
		ls | cpio -pdlum /usr/local/bin/$file
		break;;
	"/usr/local/Gnu")
		if [ ! -d /usr/local/Gnu ]; then mkdir /usr/local/Gnu; fi
		cd bin.Gnu
		ls | (cd /usr/local/Gnu; xargs rm -f)
		ls | cpio -pdlum /usr/local/Gnu/$file
		break;;
	default)
		echo internal error -- oops
		exit;;
esac

cd $basedir

case $2 in
	"/usr/local/lib")
		if [ ! -d /usr/local/lib ]; then mkdir /usr/local/lib; fi
		if [ ! -d /usr/local/lib/gcc ]; then mkdir /usr/local/lib/gcc; fi
		if [ ! -d /usr/local/lib/gcc/aux ]; then mkdir /usr/local/lib/gcc/aux; fi
		if [ ! -d /usr/local/lib/gcc/aux/$version ]; then mkdir /usr/local/lib/gcc/aux/$version; fi
		if [ ! -d /usr/local/lib/gcc/aux/$version/include ]; then mkdir /usr/local/lib/gcc/aux/$version/include; fi
		cd lib.lib
                ls | (cd /usr/local/lib/gcc/aux/$version; xargs rm -rf)
		find . -print | cpio -pdlum /usr/local/lib/gcc/aux/$version/
		cd ..
		fixincludes /usr/local/lib/gcc/aux/$version/include /usr/include $basedir
		fixcrts /usr/local/lib/gcc/aux/$version
		cd /usr/local/lib/gcc/aux/$version/include
		if [ -f limits.h ]; then
			mv limits.h syslimits.h
			rm gsyslimits.h
		else
			mv gsyslimits.h syslimits.h
		fi
		mv glimits.h limits.h
		cd $basedir
		CPP=/usr/local/lib/gcc/aux/$version/cpp ./fixproto \
			/usr/local/lib/gcc/aux/$version/include \
			/usr/local/lib/gcc/aux/$version/include /usr/include
		break;;
	"/usr/local/Gnu/lib")
		if [ ! -d /usr/local/Gnu/lib ]; then mkdir /usr/local/Gnu/lib; fi
		if [ ! -d /usr/local/Gnu/lib/gcc ]; then mkdir /usr/local/Gnu/lib/gcc; fi
		if [ ! -d /usr/local/Gnu/lib/gcc/aux ]; then mkdir /usr/local/Gnu/lib/gcc/aux; fi
		if [ ! -d /usr/local/Gnu/lib/gcc/aux/$version ]; then mkdir /usr/local/Gnu/lib/gcc/aux/$version; fi
		if [ ! -d /usr/local/Gnu/lib/gcc/aux/$version/include ]; then mkdir /usr/local/Gnu/lib/gcc/aux/$version/include; fi
		cd lib.Gnu
                ls | (cd /usr/local/Gnu/lib/gcc/aux/$version; xargs rm -rf)
		find . -print | cpio -pdlum /usr/local/Gnu/lib/gcc/aux/$version/
		cd ..
		fixincludes /usr/local/Gnu/lib/gcc/aux/$version/include /usr/include $basedir
		fixcrts /usr/local/Gnu/lib/gcc/aux/$version
		cd /usr/local/Gnu/lib/gcc/aux/$version/include
		if [ -f limits.h ]; then
			mv limits.h syslimits.h
			rm gsyslimits.h
		else
			mv gsyslimits.h syslimits.h
		fi
		mv glimits.h limits.h
		cd $basedir
		CPP=/usr/local/Gnu/lib/gcc/aux/$version/cpp ./fixproto \
			/usr/local/Gnu/lib/gcc/aux/$version/include \
			/usr/local/Gnu/lib/gcc/aux/$version/include /usr/include
		break;;
	default)
		echo internal error -- oops
		exit;;
esac

cd $basedir

if [ ! -d $MANDIR ]; then mkdir $MANDIR; fi
cp doc/*.1.z $MANDIR/
