: check that the script is started from the "first" directory p=`pwd` case `basename $p` in first) ;; *) echo "this script must be started from the 'first' directory" exit 3 ;; esac : check $PATH first if sh ckpath then : else exit 1 fi : 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 : set ACK HOME Directory in ../h/em_path.h rm -f em_path.h sed -e "/^#define[ ]*EM_DIR/s@\".*\"@\"`cd .. ; pwd`\"@" <../h/em_path.h >em_path.h if cmp ../h/em_path.h em_path.h >/dev/null 2>&1 then : Don't touch ../h/em_path.h, it's already correct else rm -f ../h/em_path.h if mv em_path.h ../h >/dev/null 2>&1 then : success else echo "Sorry, can't replace ../h/em_path.h" exit 7 fi fi : translate myecho if cc -o myecho myecho.c > /dev/null 2>&1 then : else echo "Sorry, cc does not seem to work" exit 8 fi : find cc option for lex library if fixlexlib then : else exit 9 fi : remove non-system as and ld from descr files if (ack_sys) >/dev/null 2>&1 then : echo Your system is: `ack_sys`. else myecho -n "Give me the type of your system, the current choice is: pdp_v7 PDP11 with sep I/D and version 7 (or BSD 2.8, 2.9) vax_bsd4_1a VAX11 with BSD4.1a vax_bsd4_2 VAX11 with BSD4.2 vax_sysV_2 VAX11 with System V.2 pc_ix IBM PC with PC/IX xenix3 IBM AT running Microsoft Xenix V3.2 m68_unisoft Motorola 68000 with Unisoft UNIX sun3 Sun 3 M68020 workstation sun2 Sun 2 M68000 workstation m68_sysV_0 Motorola 68000 with Uniplus System V.0 Unix m68020 Motorola M68020 VME131 running Unix System V/68 R2V2.1 ANY Neither of the above system type: " if read SYSNAME then echo echo "$SYSNAME" >../bin/ack_sys chmod +x ../bin/ack_sys case `ack_sys` in pdp_v7|vax_bsd4_1a|vax_bsd4_2|vax_sysV_2|pc_ix|m68_unisoft|sun3|sun2|m68_sysV_0|xenix3|m68020) ;; *) echo None of the software especially intended for the named systems will work ;; esac else echo Sorry, got EOF when reading system name. exit 10 fi fi myecho -n "Your system is `ack_sys`, are you satisfied with that? (y/n) " if read YESNO then case $YESNO in j*|y*) ;; n*) echo Ok, I will give you another chance.... rm -f ../bin/ack_sys exec sh $0 ;; *) echo "I do not understand your answer ($YESNO). Bye" exit 11 ;; esac else echo Sorry, got EOF when reading your answer. exit 12 fi : "Take action according to the system used" : 'Prevent the use of the system assembler on for certain systems' : 'prevent the use of ranlib on pdp 11s' case `ack_sys` in pdp_*) RMD="vax4" echo 'echo "no ranlib on this system"; exit 93' > ../bin/ranlib chmod +x ../bin/ranlib ranlib > /dev/null 2>&1 case X$? in X93) ;; *) echo "Sorry, there still is an error in your PATH." echo "It finds the system ranlib before ours, which is in the ACK bin directory." exit 13 esac ;; *) RMD="vax4" ;; esac for i in $RMD do ( cd ../lib/$i if grep '^name as$' descr >/dev/null 2>&1 then cp descr descr.orig ed - descr <<'ABC' /^name as$/;/^end$/d /^name ld$/;/^end$/d w q ABC fi ) done case `ack_sys` in vax_bsd4_2) ( cd ../lib/vax4 cp descr descr.orig ed - descr <<'ABC' /CPP_F/s/$/ -D__BSD4_2/ w q ABC ) ;; vax_sysV_2) ( cd ../lib/vax4 cp descr descr.orig ed - descr <<'ABC' /CPP_F/s/$/ -D__USG/ w q ABC ) ;; esac : 'Set the default machine in ../h/local.h' BM=1 case `ack_sys` in pdp_v7) ACM=pdp ; BM=0 ;; vax_bsd4_1a) ACM=vax4 ;; vax_bsd4_2) ACM=vax4 ;; vax_sysV_2) ACM=vax4 ;; pc_ix) ACM=i86 ; BM=0;; xenix3) ACM=xenix3 ; BM=0;; sun3) ACM=sun3 ;; sun2) ACM=sun2 ;; m68_unisoft) ACM=m68k2 ;; m68_sysV_0) ACM=mantra ;; m68020) ACM=m68020 ;; *) ACM=m68k2 ;; esac rm -f local.h sed -e /ACKM/s/'".*"'/'"'$ACM'"'/ -e /BIGMACH/s/'[01]'/$BM/ < ../h/local.h >local.h if cmp -s ../h/local.h local.h then : else cp local.h ../h rm -f local.h fi echo "Your default machine to compile for is $ACM" case `ack_sys` in vax_bsd4_2) ( cd ../mach/vax4 echo "Copying mach/vax4/libbsd4_2 to mach/vax4/libsys" mkdir libsys > /dev/null 2>&1 rm -f libsys/* cp libbsd4_2/* libsys ) ;; vax_bsd4_1a) ( cd ../mach/vax4 echo "Copying mach/vax4/libbsd4_1a to mach/vax4/libsys" mkdir libsys > /dev/null 2>&1 rm -f libsys/* cp libbsd4_1a/* libsys ) ;; vax_sysV_2) ( cd ../mach/vax4 echo "Copying mach/vax4/libsysV_2 to mach/vax4/libsys" mkdir libsys > /dev/null 2>&1 rm -f libsys/* cp libsysV_2/* libsys ) ;; esac case X$BM in X0) ( cd ../lang/cem/cemcom cp SmallPars Parameters cd ../../../lib/descr cp fe fe.orig ed - fe << ABC /em_cemcom/i prep always . /CPP_F/;.+2d /CPP_F/;.+2d w q ABC ) for i in ../mach/vax4/cg ../mach/m68k2/cg ../mach/m68020/ncg do ( cd $i cp tables1.c tables.c cp tables1.h tables.h ) done ( cd ../modules/src/malloc cp param.h param.h.orig ed - param.h <