: 'Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984, 1985.' echo "Configuration questions for the B system." : 'Determine if echo -n works' echo -n "bleep" >.bleep if grep n .bleep >/dev/null 2>&1 then n="" else n="-n" fi rm -f .bleep : 'What machine?' echo " " echo $n "Figuring out what machine you have " echo $n "..." cat >machine.c < main() { #ifdef vax printf("vax\n"); #else #ifdef pdp printf("pdp\n"); #else #ifdef PDP printf("pdp\n"); #else printf("other\n"); #endif #endif #endif } EOF cc machine.c -o machine machine=`machine` rm -f machine* echo " " case $machine in vax) echo "This machine appears to be a VAX." echo $n "Is this true? " read ans case $ans in n*|N*|f*|F*) machine="other" ;; *) bint="bint" ;; esac ;; pdp) echo "This machine appears to be a PDP." echo $n "Is this true? " read ans case $ans in n*|N*|f*|F*) machine="other" ;; *) bint="bsmall" ;; esac ;; esac case $machine in other) echo "Your machine does not appear to be a VAX or PDP." echo $n "Is this a small machine (less than 190K code space)? " read ans case $ans in y*|Y*) bint="bsmall" ;; *) bint="bint" ;; esac echo " " echo "Since your machine may not be a VAX or PDP, you might have to edit" echo "the configuration file for the B interpreter '$bint'." echo "Check the remarks in b0con.h and README in ./src/$bint." ;; esac case $bint in "bsmall") echo " " echo "Since you have a small system, we can only use the old" echo "version of the B interpreter, named $bint." echo "See the file ./src/bsmall/README for details." echo " " echo "The B editor is too big in its full glory." echo "Therefore all kinds of features will be turned off in an" echo "attempt to make it fit." echo "See ./src/bed/feat.h for details." ;; esac : 'What unix?' echo " " echo $n "Finding out about your brand of unix " echo $n "..." cat >unix.c < #include main() { #ifdef SIGCHLD #ifdef SIGVTALRM printf("BSD4_2\n"); #else printf("BSD\n"); #endif #else #ifdef SIGCLD printf("ATT\n"); #else printf("unknown\n"); /* Version 7 we hope ... */ #endif #endif } EOF cc unix.c -o unix unix=`unix` rm -f unix* echo " " case $unix in BSD4_2) echo "You appear to be running Berkeley's BSD unix, version 4.2 (or later)." echo $n "Is this true? " read ans case $ans in n*|N*|f*|F*) unix="unknown";; esac ;; BSD) echo "You appear to be running Berkeley's BSD unix." echo $n "Is this true? " read ans case $ans in n*|N*|f*|F*) unix="unknown";; esac ;; ATT) echo "You appear to be running ATT's System III or System V unix." echo $n "Is this true? " read ans case $ans in n*|N*|f*|F*) unix="unknown";; esac ;; esac case $machine in pdp|other) case $unix in unknown) echo $n "Are you running PWB Unix? " read ans case $ans in y*|Y*) unix="PWB";; esac ;; esac esac case $unix in unknown) echo " " echo "We cannot find out what type of unix you are running." echo "See ./src/bed/unix.h, ./src/bed/feat.h, /src/$bint/README" echo "and ./src/$bint/b0con.h in case of problems." ;; esac : 'Floating point arithmetic ok?' echo " " cat >float.c < double dadd(a, b) double a, b; { return a+b; } main() { double a, b, c; double dadd(); a = 3.14; b = 2.7 * a; c = dadd(a, b); exit(0); } EOF cc -O float.c -o float >/dev/null 2>&1 if sh 2>/dev/null </dev/null 2>&1 until sh 2>/dev/null </dev/null 2>&1 done fi rm -f float* core : 'termio system?' if test -r /usr/include/termio.h then termio="yes" echo " " echo "Termio.h found." else termio="no" if test ! -r /usr/include/sgtty.h then echo " " echo "Neither termio.h nor sgtty.h found." echo "See ./src/bed/unix.h in case of problems." fi fi : 'termcap library for B editor' echo " " echo $n "Searching for your termcap-like library routines " echo $n "... " if test -r /lib/libtermcap.a -o -r /usr/lib/libtermcap.a then termlib="-ltermcap" echo "termcap library found." elif test -r /usr/local/lib/libtermcap.a then termlib="/usr/local/lib/libtermcap.a" echo "local termcap library found." elif test -r /lib/libtermlib.a -o -r /usr/lib/libtermlib.a then termlib="-ltermlib" echo "termlib library found." elif test -r /usr/local/lib/libtermlib.a then termlib="/usr/local/lib/libtermlib.a" echo "local termlib library found." elif test -r /lib/libcurses.a -o -r /usr/lib/libcurses.a then termlib="-lcurses" echo "terminfo library found." elif test -r /usr/local/lib/libcurses.a then termlib="/usr/local/lib/libcurses.a" echo "local terminfo library found." else : 'changed for 4.3 BSD release' termlib="ask_it" fi while test "$termlib" = "ask_it" -o "$termlib" = "try_again"; do case $termlib in ask_it) echo " " echo "Please specify where the termcap-like routines are kept" echo $n " (either full pathname or -lxxx option) " ;; try_again) echo $n "Please try again (full pathname or -lyyy option) " ;; esac read termlib case $termlib in -l*) echo "Hope $termlib will do the job." ;; /*) if test -r $termlib then echo "Ok, we will try that one." else echo "$termlib does not appear to exist." termlib="try_again" fi ;; *) echo "$termlib is not a valid library specification." termlib="try_again" ;; esac done : 'termcap database, commented out for 4.3 BSD' #echo " " #if test -r /etc/termcap #then # termcap="yes" # echo "Termcap database found." #else # termcap="no" # echo "No termcap database found; we will install our own, to be used" # echo "when your TERMCAP environment variable is not set." #fi : 'Shall we make B public?' public="no" echo " " echo $n "Will you want to make B publically available? " read ans case $ans in y*|Y*) public="yes" if test -r answers then . answers else bdef="/usr/new" libdef="/usr/new/lib/B" man1def="/usr/man/mann" man5def="/usr/man/mann" fi bdir='blurfl' while test ! -d "$bdir" ; do case $bdir in blurfl) echo " " echo "Please type the full pathname of a directory" echo "in which you have write permission," echo "and where you want the 'b' command file installed" echo $n " (default $bdef) " ;; *) echo "$bdir does not appear to exist." echo $n "Are you sure you typed the right name? " read ans case $ans in y*|Y*) echo "Don't forget to make $bdir before 'make install'." break ;; *) echo " " echo $n "Please try again (default $bdef) " ;; esac ;; esac read bdir case $bdir in "") bdir=$bdef;; esac done libdir='blurfl' while test ! -d "$libdir" ; do case $libdir in blurfl) echo " " echo "Please type the full pathname of the directory" echo "where you want to install the auxiliary binaries" echo "and datafiles needed by the B system" echo $n " (default $libdef) " ;; *) echo "$libdir does not appear to exist." echo $n "Are you sure you typed the right name? " read ans case $ans in *|Y*) echo "Don't forget to make $libdir before 'make install'." break ;; *) echo " " echo $n "Please try again (default $libdef) " ;; esac ;; esac read libdir case $libdir in "") libdir=$libdef;; esac done man1dir='blurfl' while test ! -d "$man1dir" ; do case $man1dir in blurfl) echo " " echo "Please type the full pathname of the directory" echo "where you want to install the 'b.1' manual page" echo $n " (default $man1def) " ;; *) echo "$man1dir does not appear to exist." echo $n "Are you sure you typed the right name? " read ans case $ans in y*|Y*) echo "Don't forget to make $man1dir before 'make install'." break ;; *) echo " " echo $n "Please try again (default $man1def) " ;; esac ;; esac read man1dir case $man1dir in "") man1dir=$man1def;; esac done man5dir='blurfl' while test ! -d "$man5dir" ; do case $man5dir in blurfl) echo " " echo "Please type the full pathname of the directory" echo "where you want to install the 'bterminal.5' manual page" echo $n " (default $man5def) " ;; *) echo "$man5dir does not appear to exist." echo $n "Are you sure you typed the right name? " read ans case $ans in y*|Y*) echo "Don't forget to make $man5dir before 'make install'." break ;; *) echo " " echo $n "Please try again (default $man5def) " ;; esac echo $n "Please try again " ;; esac read man5dir case $man5dir in "") man5dir=$man5def;; esac done cat >answers <mf.head <$f chmod 644 $f done rm -f mf.head for f in $shellfiles do cp $f.gen $f chmod 755 $f done echo " " echo $n "Editing Appropriate files ... " case $machine in pdp) f=src/bed/Makefile $editor $f <