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