case $0 in
*/first)
	FDIR=`expr $0 : '\(.*\)/first'`
	;;
first)	FDIR=.
	;;
esac
echo check write-ability of /tmp and /usr/tmp ...
if ( >/usr/tmp/aaax.$$ )
then
	rm /usr/tmp/aaax.$$
else
	echo /usr/tmp must exist and be writable.
	exit 2
fi
if ( >/tmp/aaax.$$ )
then
	rm /tmp/aaax.$$
else
	echo /tmp must exist and be writable.
	exit 2
fi
echo "/tmp and /usr/tmp ok"

if [ -f echo ]
then :
else
echo compile own echo program, so that we know how it works ...
if cc -o echo $FDIR/myecho.c > /dev/null 2>&1
then
	echo compilation succeeded
else
	echo "Sorry, cc does not seem to work"
	exit 8
fi
fi

if [ -f macros ]
then
	. macros
fi

: "Now get system name and directories"
. $FDIR/get_sys

: "Take action according to the system used"
BM=1
OLDACM=$ACM
OLDSYS=$SYS
case $SYSNAME in
vax_bsd4_1a)    ACM=vax4 ; SYS=BSD4_1 ; BYTE_ORDER=0123 ;;
vax_bsd4_2)	ACM=vax4 ; SYS=BSD4_2 ; BYTE_ORDER=0123 ;;
vax_sysV_2)	ACM=vax4 ; SYS=SYS_5 ; BYTE_ORDER=0123 ;;
i386)		ACM=i386 ; SYS=SYS_5 ; BYTE_ORDER=0123 ;;
sun3)		ACM=sun3 ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
sun2)		ACM=sun2 ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
m68_unisoft|m68k2)	ACM=m68k2 ; SYS=V7; BYTE_ORDER=3210 ;;
m68_sysV_0|mantra)	ACM=mantra ; SYS=SYS_5; BYTE_ORDER=3210 ;;
m68020)		ACM=m68020 ; SYS=SYS_5; BYTE_ORDER=3210 ;;
sparc)		ACM=sparc ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
i86)		ACM=i86 ; SYS=SYS_5; BYTE_ORDER=0123 ;;
xenix3)		ACM=xenix3 ; SYS=SYS_5; BYTE_ORDER=0123 ;;
minix)		ACM=minix ; SYS=V7; BYTE_ORDER=0123 ;;
pmds)		ACM=pmds ; SYS=V7; BYTE_ORDER=3210 ;;
pmds4)		ACM=pmds4 ; SYS=V7; BYTE_ORDER=3210 ;;
minixST)	ACM=minixST ; SYS=V7; BYTE_ORDER=3210 ;;
m68k4)		ACM=m68k4 ; SYS=V7; BYTE_ORDER=3210 ;;
*)		ACM=XXX ; SYS=XXX ; BYTE_ORDER=XXX ;;
esac

: do not change the order in MACH_LIST. check limit_enquire first.
MACH_LIST="i86 xenix3 minix i386 6500 6800 6805 6809 i80 em22 em24 em44 m68k2 pmds minixST m68k4 pmds4 sun2 mantra m68020 sun3 sparc ns pdp s2650 vax4 z80 z8000 arm"

while :
do
	for i in $MACH_LIST
	do
		if [ $i = $ACM ]
		then break
		fi
	done
	if [ $i = $ACM ]
	then break
	fi
	echo "This installation script has no knowledge about $SYSNAME.
You will have to specify the default machine that you want ACK to
compile for. Choices:"
	l=
	x=
	for i in $MACH_LIST
	do
		l="$l $i"
		x=x$x
		case $x in
		xxxxxxxxxx)	echo $l
				x=
				l=
				;;
		esac
	done
	ACM=$OLDACM
	echo $l
	./echo -n "Your choice: [$OLDACM] "
	. $FDIR/get_answer
	case $ANS in
	'')	ANS="$ACM";;
	esac
	ACM="$ANS"
done
while :
do
case $SYS in
V7|BSD4_1|BSD4_2|SYS_5)
	break
	;;
*)
	SYS=$OLDSYS
	echo 'What kind of Unix is the target system running?
Choices:
	V7	for Unix V7, BSD 2.*
	BSD4_1	for Berkeley 4.1
	BSD4_2	for Berkeley 4.2, 4.3, SunOS
	SYS_5	for Xenix, System III, System V'
	./echo -n "Your choice (V7|BSD4_1|BSD4_2|SYS_5): [$OLDSYS] "
	. $FDIR/get_answer
	case $ANS in
	'')	ANS="$SYS";;
	esac
	SYS="$ANS"
	;;
esac
done
rm -f local.h
sed -e /ACKM/s/'".*"'/'"'$ACM'"'/ -e /BIGMACH/s/'[01]'/$BM/ -e /SYSTEM/s/'^#[ 	]*define[ 	]*[a-zA-Z_][a-zA-Z0-9_]*'/"#	define $SYS"/ < $FDIR/local.h.src >local.h
case $BYTE_ORDER in
XXX)	;;
*)	echo '/* Optional definition of BYTE_ORDER: */' >> local.h
	echo "#define BYTE_ORDER 0x$BYTE_ORDER" >> local.h
	;;
esac

echo "Your default machine to compile for is $ACM"

DISABLE_LANG=
echo "Installation of the complete ACK takes a long time. Limiting the
number of languages, runtime libraries, back-ends, and assemblers to be
installed may save a lot of time. If you want to install everything,
answer no to the next question. Otherwise, answer yes, and you will be
prompted for details"
while :
do
	./echo -n "Do you want to limit the installation in any way? (y/n) [$LIMIT] "
	. $FDIR/get_answer
	case $ANS in
	'')	ANS="$LIMIT";;
	esac
	case X$ANS in
	Xj*|Xy|X*)
		LIMIT=y
		. $FDIR/limit_enquire
		break
		;;
	Xn*)	. $FDIR/get_sysvax
		LIMIT=n
		DO_MACHINE_INDEP=y
		break
		;;
	*)	echo "I do not understand your answer ($ANS). Try again."
		;;
	esac
done

. $FDIR/get_makepars

echo "TARGET_HOME=\"$TARGET_HOME\"; export TARGET_HOME" > macros
echo "UTIL_HOME=\"$UTIL_HOME\"; export UTIL_HOME" >> macros
echo "SRC_HOME=\"$SRC_HOME\"; export SRC_HOME" >> macros
echo "SYSNAME=\"$SYSNAME\"; export SYSNAME" >> macros
echo "ACM=\"$ACM\"; export ACM" >> macros
echo "CURRENT=\"$CURRENT\"; export CURRENT" >> macros
echo "SYS=\"$SYS\"; export SYS" >> macros
echo "LIMIT=\"$LIMIT\"; export LIMIT" >> macros
echo "CONFIG=\"$CONFIG\"; export CONFIG" >> macros
echo "DISABLE_LANG=\"$DISABLE_LANG\"; export DISABLE_LANG" >> macros
echo "DISABLE_SUP=\"$DISABLE_SUP\"; export DISABLE_SUP" >> macros
echo "DO_MACHINE_INDEP=\"$DO_MACHINE_INDEP\"; export DO_MACHINE_INDEP" >> macros
echo "MACH_LIST=\"$MACH_LIST\"; export MACH_LIST" >> macros
echo "SYSVAX=\"$SYSVAX\"; export SYSVAX" >> macros
echo "WS=\"$WS\"; export WS" >> macros
echo "PS=\"$PS\"; export PS" >> macros

cat macros $FDIR/install_tail > INSTALL
chmod +x INSTALL

echo "
A shell-script called 'INSTALL' has been created. Running it
installs ACK. Note that this may take a (very) long time, so run it
in the background, with its output redirected, f.i.:
	sh INSTALL > INSTALL.out 2>&1 &
"
exit 0
