123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- : 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 <<ABC
- /STORE/s/define/undef/
- w
- q
- ABC
- )
- ( cd ../lang/m2/comp
- cp SmallPars Parameters
- cp Makefile Makefile.orig
- ed - Makefile <<ABC
- /MALLOC/s/=/=#/
- w
- q
- ABC
- )
- ( cd ../mach
- : machines with word or pointer size not 2
- for i in em24 em44 m68020 m68k2 m68k4 mantra ns sun2 sun3 vax4
- do
- cp $i/Action $i/Action.orig
- ed - $i/Action <<ABC
- /odula-2/,/^end/s/^/!/
- w
- q
- ABC
- done
- )
- ;;
- *) ( cd ../lang/cem/cemcom
- cp BigPars Parameters
- cd ../../m2/comp
- cp BigPars Parameters
- )
- ;;
- esac
- : find varargs include file
- : if not present use our own
- if [ -f /usr/include/varargs.h ]
- then
- :
- else
- cp ../include/_tail_cc/varargs.h ../modules/h
- fi
|