Annotation of 43BSD/contrib/B/Setup, revision 1.1

1.1     ! root        1: : 'Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984, 1985.'
        !             2: 
        !             3: echo "Configuration questions for the B system."
        !             4: 
        !             5: : 'Determine if echo -n works'
        !             6: echo -n "bleep" >.bleep
        !             7: if grep n .bleep >/dev/null 2>&1
        !             8: then
        !             9:        n=""
        !            10: else
        !            11:        n="-n"
        !            12: fi
        !            13: rm -f .bleep
        !            14: 
        !            15: : 'What machine?'
        !            16: echo " "
        !            17: echo $n "Figuring out what machine you have "
        !            18: echo $n "..."
        !            19: cat >machine.c <<EOF
        !            20: #include <stdio.h>
        !            21: main() {
        !            22: #ifdef vax
        !            23:        printf("vax\n");
        !            24: #else
        !            25: #ifdef pdp
        !            26:        printf("pdp\n");
        !            27: #else
        !            28: #ifdef PDP
        !            29:        printf("pdp\n");
        !            30: #else
        !            31:        printf("other\n");
        !            32: #endif
        !            33: #endif
        !            34: #endif
        !            35: }
        !            36: EOF
        !            37: cc machine.c -o machine
        !            38: machine=`machine`
        !            39: rm -f machine*
        !            40: echo " "
        !            41: case $machine in
        !            42: vax)
        !            43:        echo "This machine appears to be a VAX."
        !            44:        echo $n "Is this true? "
        !            45:        read ans
        !            46:        case $ans in
        !            47:        n*|N*|f*|F*)    machine="other"
        !            48:                ;;
        !            49:        *)      bint="bint"
        !            50:                ;;
        !            51:        esac
        !            52:        ;;
        !            53: pdp)
        !            54:        echo "This machine appears to be a PDP."
        !            55:        echo $n "Is this true? "
        !            56:        read ans
        !            57:        case $ans in
        !            58:        n*|N*|f*|F*)    machine="other"
        !            59:                ;;
        !            60:        *)      bint="bsmall"
        !            61:                ;;
        !            62:        esac
        !            63:        ;;
        !            64: esac
        !            65: case $machine in
        !            66: other)
        !            67:        echo "Your machine does not appear to be a VAX or PDP."
        !            68:        echo $n "Is this a small machine (less than 190K code space)? "
        !            69:        read ans
        !            70:        case $ans in
        !            71:        y*|Y*)  bint="bsmall"
        !            72:                ;;
        !            73:        *)      bint="bint"
        !            74:                ;;
        !            75:        esac
        !            76:        echo " "
        !            77:        echo "Since your machine may not be a VAX or PDP, you might have to edit"
        !            78:        echo "the configuration file for the B interpreter '$bint'."
        !            79:        echo "Check the remarks in b0con.h and README in ./src/$bint."
        !            80:        ;;
        !            81: esac
        !            82: 
        !            83: case $bint in
        !            84: "bsmall")
        !            85:        echo " "
        !            86:        echo "Since you have a small system, we can only use the old"
        !            87:        echo "version of the B interpreter, named $bint."
        !            88:        echo "See the file ./src/bsmall/README for details."
        !            89:        echo " "
        !            90:        echo "The B editor is too big in its full glory."
        !            91:        echo "Therefore all kinds of features will be turned off in an"
        !            92:        echo "attempt to make it fit."
        !            93:        echo "See ./src/bed/feat.h for details."
        !            94:        ;;
        !            95: esac
        !            96: 
        !            97: : 'What unix?'
        !            98: echo " "
        !            99: echo $n "Finding out about your brand of unix "
        !           100: echo $n "..."
        !           101: cat >unix.c <<EOF
        !           102: #include <stdio.h>
        !           103: #include <signal.h>
        !           104: main() {
        !           105: #ifdef SIGCHLD
        !           106: #ifdef SIGVTALRM
        !           107:        printf("BSD4_2\n");
        !           108: #else
        !           109:        printf("BSD\n");
        !           110: #endif
        !           111: #else
        !           112: #ifdef SIGCLD
        !           113:        printf("ATT\n");
        !           114: #else
        !           115:        printf("unknown\n"); /* Version 7 we hope ... */
        !           116: #endif
        !           117: #endif
        !           118: }
        !           119: EOF
        !           120: cc unix.c -o unix
        !           121: unix=`unix`
        !           122: rm -f unix*
        !           123: 
        !           124: echo " "
        !           125: case $unix in
        !           126: BSD4_2)
        !           127:        echo "You appear to be running Berkeley's BSD unix, version 4.2 (or later)."
        !           128:        echo $n "Is this true? "
        !           129:        read ans
        !           130:        case $ans in
        !           131:        n*|N*|f*|F*)    unix="unknown";;
        !           132:        esac
        !           133:        ;;
        !           134: BSD)
        !           135:        echo "You appear to be running Berkeley's BSD unix."
        !           136:        echo $n "Is this true? "
        !           137:        read ans
        !           138:        case $ans in
        !           139:        n*|N*|f*|F*)    unix="unknown";;
        !           140:        esac
        !           141:        ;;
        !           142: ATT)
        !           143:        echo "You appear to be running ATT's System III or System V unix."
        !           144:        echo $n "Is this true? "
        !           145:        read ans
        !           146:        case $ans in
        !           147:        n*|N*|f*|F*)    unix="unknown";;
        !           148:        esac
        !           149:        ;;
        !           150: esac
        !           151: 
        !           152: case $machine in
        !           153: pdp|other)
        !           154:        case $unix in
        !           155:        unknown)
        !           156:                echo $n "Are you running PWB Unix? "
        !           157:                read ans
        !           158:                case $ans in
        !           159:                y*|Y*)  unix="PWB";;
        !           160:                esac
        !           161:                ;;
        !           162:        esac
        !           163: esac
        !           164: 
        !           165: case $unix in
        !           166: unknown)
        !           167:        echo " "
        !           168:        echo "We cannot find out what type of unix you are running."
        !           169:        echo "See ./src/bed/unix.h, ./src/bed/feat.h, /src/$bint/README"
        !           170:        echo "and ./src/$bint/b0con.h in case of problems."
        !           171:        ;;
        !           172: esac
        !           173: 
        !           174: : 'Floating point arithmetic ok?'
        !           175: echo " "
        !           176: cat >float.c <<EOF
        !           177: #include <stdio.h>
        !           178: double dadd(a, b) double a, b; {
        !           179:        return a+b;
        !           180: }
        !           181: main() {
        !           182:        double a, b, c;
        !           183:        double dadd();
        !           184:        a = 3.14;
        !           185:        b = 2.7 * a;
        !           186:        c = dadd(a, b);
        !           187:        exit(0);
        !           188: }
        !           189: EOF
        !           190: cc -O float.c -o float >/dev/null 2>&1
        !           191: if sh 2>/dev/null <<EOF
        !           192:        if float
        !           193:        then exit 0
        !           194:        else exit 1
        !           195:        fi
        !           196: EOF
        !           197: then
        !           198:        echo "Your floating point seems to be alright."
        !           199:        fflag=""
        !           200: else
        !           201:        echo "Your C compiler seems to need a special flag for"
        !           202:        echo "loading (probably software) floating point routines."
        !           203:        echo $n "What flag is needed (default -f) "
        !           204:        read fflag
        !           205:        case $fflag in
        !           206:        '')     fflag="-f";;
        !           207:        esac
        !           208:        cc -O $fflag float.c -o float >/dev/null 2>&1
        !           209:        until sh 2>/dev/null <<EOF
        !           210:                if float
        !           211:                then exit 0
        !           212:                else exit 1
        !           213:                fi
        !           214: EOF
        !           215:        do
        !           216:                echo "This flag doesn't seem to work."
        !           217:                echo "Try again (default -f) "
        !           218:                read fflag
        !           219:                case $fflag in
        !           220:                '')     fflag="-f";;
        !           221:                esac
        !           222:                cc -O $fflag float.c -o float >/dev/null 2>&1
        !           223:        done
        !           224: fi
        !           225: rm -f float* core
        !           226: 
        !           227: : 'termio system?'
        !           228: if test -r /usr/include/termio.h
        !           229: then
        !           230:        termio="yes"
        !           231:        echo " "
        !           232:        echo "Termio.h found."
        !           233: else
        !           234:        termio="no"
        !           235:        if test ! -r /usr/include/sgtty.h
        !           236:        then
        !           237:                echo " "
        !           238:                echo "Neither termio.h nor sgtty.h found."
        !           239:                echo "See ./src/bed/unix.h in case of problems."
        !           240:        fi
        !           241: fi
        !           242: 
        !           243: : 'termcap library for B editor'
        !           244: echo " "
        !           245: echo $n "Searching for your termcap-like library routines "
        !           246: echo $n "... "
        !           247: if test -r /lib/libtermcap.a -o -r /usr/lib/libtermcap.a
        !           248: then
        !           249:        termlib="-ltermcap"
        !           250:        echo "termcap library found."
        !           251: elif test -r /usr/local/lib/libtermcap.a
        !           252: then
        !           253:        termlib="/usr/local/lib/libtermcap.a"
        !           254:        echo "local termcap library found."
        !           255: elif test -r /lib/libtermlib.a -o -r /usr/lib/libtermlib.a
        !           256: then
        !           257:        termlib="-ltermlib"
        !           258:        echo "termlib library found."
        !           259: elif test -r /usr/local/lib/libtermlib.a
        !           260: then
        !           261:        termlib="/usr/local/lib/libtermlib.a"
        !           262:        echo "local termlib library found."
        !           263: elif test -r /lib/libcurses.a -o -r /usr/lib/libcurses.a
        !           264: then
        !           265:        termlib="-lcurses"
        !           266:        echo "terminfo library found."
        !           267: elif test -r /usr/local/lib/libcurses.a
        !           268: then
        !           269:        termlib="/usr/local/lib/libcurses.a"
        !           270:        echo "local terminfo library found."
        !           271: else
        !           272:        : 'changed for 4.3 BSD release'
        !           273:        termlib="ask_it"
        !           274: fi
        !           275: while test "$termlib" = "ask_it" -o "$termlib" = "try_again"; do
        !           276:        case $termlib in
        !           277:        ask_it)
        !           278:                echo " "
        !           279:                echo "Please specify where the termcap-like routines are kept"
        !           280:                echo $n " (either full pathname or -lxxx option) "
        !           281:                ;;
        !           282:        try_again)
        !           283:                echo $n "Please try again (full pathname or -lyyy option) "
        !           284:                ;;
        !           285:        esac
        !           286:        read termlib
        !           287:        case $termlib in
        !           288:        -l*)
        !           289:                echo "Hope $termlib will do the job."
        !           290:                ;;
        !           291:        /*)
        !           292:                if test -r $termlib
        !           293:                then
        !           294:                        echo "Ok, we will try that one."
        !           295:                else
        !           296:                        echo "$termlib does not appear to exist."
        !           297:                        termlib="try_again"
        !           298:                fi
        !           299:                ;;
        !           300:        *)
        !           301:                echo "$termlib is not a valid library specification."
        !           302:                termlib="try_again"
        !           303:                ;;
        !           304:        esac
        !           305: done
        !           306: 
        !           307: : 'termcap database, commented out for 4.3 BSD'
        !           308: #echo " "
        !           309: #if test -r /etc/termcap
        !           310: #then
        !           311: #      termcap="yes"
        !           312: #      echo "Termcap database found."
        !           313: #else
        !           314: #      termcap="no"
        !           315: #      echo "No termcap database found; we will install our own, to be used"
        !           316: #      echo "when your TERMCAP environment variable is not set."
        !           317: #fi
        !           318: 
        !           319: 
        !           320: : 'Shall we make B public?'
        !           321: public="no"
        !           322: echo " "
        !           323: echo $n "Will you want to make B publically available? "
        !           324: read ans
        !           325: case $ans in
        !           326: y*|Y*)
        !           327: public="yes"
        !           328: if test -r answers
        !           329: then
        !           330:        . answers
        !           331: else
        !           332:        bdef="/usr/new"
        !           333:        libdef="/usr/new/lib/B"
        !           334:        man1def="/usr/man/mann"
        !           335:        man5def="/usr/man/mann"
        !           336: fi
        !           337: bdir='blurfl'
        !           338: while test ! -d "$bdir" ; do
        !           339:        case $bdir in
        !           340:        blurfl)
        !           341:                echo " "
        !           342:                echo "Please type the full pathname of a directory"
        !           343:                echo "in which you have write permission,"
        !           344:                echo "and where you want the 'b' command file installed"
        !           345:                echo $n " (default $bdef) "
        !           346:                ;;
        !           347:        *)      echo "$bdir does not appear to exist."
        !           348:                echo $n "Are you sure you typed the right name? "
        !           349:                read ans
        !           350:                case $ans in
        !           351:                y*|Y*)  echo "Don't forget to make $bdir before 'make install'."
        !           352:                        break
        !           353:                        ;;
        !           354:                *)      echo " "
        !           355:                        echo $n "Please try again (default $bdef) "
        !           356:                        ;;
        !           357:                esac
        !           358:                ;;
        !           359:        esac
        !           360:        read bdir
        !           361:        case $bdir in
        !           362:        "") bdir=$bdef;;
        !           363:        esac
        !           364: done
        !           365: libdir='blurfl'
        !           366: while test ! -d "$libdir" ; do
        !           367:        case $libdir in
        !           368:        blurfl)
        !           369:                echo " "
        !           370:                echo "Please type the full pathname of the directory"
        !           371:                echo "where you want to install the auxiliary binaries"
        !           372:                echo "and datafiles needed by the B system"
        !           373:                echo $n " (default $libdef) "
        !           374:                ;;
        !           375:        *)      echo "$libdir does not appear to exist."
        !           376:                echo $n "Are you sure you typed the right name? "
        !           377:                read ans
        !           378:                case $ans in
        !           379:                *|Y*)   echo "Don't forget to make $libdir before 'make install'."
        !           380:                        break
        !           381:                        ;;
        !           382:                *)      echo " "
        !           383:                        echo $n "Please try again (default $libdef) "
        !           384:                        ;;
        !           385:                esac
        !           386:                ;;
        !           387:        esac
        !           388:        read libdir
        !           389:        case $libdir in
        !           390:        "") libdir=$libdef;;
        !           391:        esac
        !           392: done
        !           393: man1dir='blurfl'
        !           394: while test ! -d "$man1dir" ; do
        !           395:        case $man1dir in
        !           396:        blurfl)
        !           397:                echo " "
        !           398:                echo "Please type the full pathname of the directory"
        !           399:                echo "where you want to install the 'b.1' manual page"
        !           400:                echo $n " (default $man1def) "
        !           401:                ;;
        !           402:        *)      echo "$man1dir does not appear to exist."
        !           403:                echo $n "Are you sure you typed the right name? "
        !           404:                read ans
        !           405:                case $ans in
        !           406:                y*|Y*)  echo "Don't forget to make $man1dir before 'make install'."
        !           407:                        break
        !           408:                        ;;
        !           409:                *)      echo " "
        !           410:                        echo $n "Please try again (default $man1def) "
        !           411:                        ;;
        !           412:                esac
        !           413:                ;;
        !           414:        esac
        !           415:        read man1dir
        !           416:        case $man1dir in
        !           417:        "") man1dir=$man1def;;
        !           418:        esac
        !           419: done
        !           420: man5dir='blurfl'
        !           421: while test ! -d "$man5dir" ; do
        !           422:        case $man5dir in
        !           423:        blurfl)
        !           424:                echo " "
        !           425:                echo "Please type the full pathname of the directory"
        !           426:                echo "where you want to install the 'bterminal.5' manual page"
        !           427:                echo $n " (default $man5def) "
        !           428:                ;;
        !           429:        *)      echo "$man5dir does not appear to exist."
        !           430:                echo $n "Are you sure you typed the right name? "
        !           431:                read ans
        !           432:                case $ans in
        !           433:                y*|Y*)  echo "Don't forget to make $man5dir before 'make install'."
        !           434:                        break
        !           435:                        ;;
        !           436:                *)      echo " "
        !           437:                        echo $n "Please try again (default $man5def) "
        !           438:                        ;;
        !           439:                esac
        !           440:                echo $n "Please try again "
        !           441:                ;;
        !           442:        esac
        !           443:        read man5dir
        !           444:        case $man5dir in
        !           445:        "") man5dir=$man5def;;
        !           446:        esac
        !           447: done
        !           448: 
        !           449: cat >answers <<EOF
        !           450: bdef="$bdir"
        !           451: libdef="$libdir"
        !           452: man1def="$man1dir"
        !           453: man5def="$man5dir"
        !           454: EOF
        !           455: ;;
        !           456: esac
        !           457: echo " "
        !           458: echo "End of configuration questions for the B system."
        !           459: 
        !           460: : 'Getting generic copies of makefiles and shellfiles.'
        !           461: : 'Since some tar_s leave the owner of the tape as the owner of the files'
        !           462: : 'this will make sure the edit scripts will not fail.'
        !           463: 
        !           464: makefiles="./Makefile src/b/Makefile src/bed/Makefile src/bint/Makefile src/bsmall/Makefile"
        !           465: shellfiles="src/b/b.sh src/b/b_p.sh"
        !           466: 
        !           467: editor="ed -"
        !           468: 
        !           469: cat >mf.head <<EOF
        !           470: # This file was generated and edited by the Setup command.
        !           471: # To make lasting changes edit the file Makefile.gen and run Setup again.
        !           472: # 
        !           473: EOF
        !           474: for f in $makefiles
        !           475: do
        !           476:        cat mf.head $f.gen >$f
        !           477:        chmod 644 $f
        !           478: done
        !           479: rm -f mf.head
        !           480: 
        !           481: for f in $shellfiles
        !           482: do
        !           483:        cp $f.gen $f
        !           484:        chmod 755 $f
        !           485: done
        !           486: 
        !           487: echo " "
        !           488: echo $n "Editing Appropriate files ... "
        !           489: 
        !           490: case $machine in
        !           491: pdp)
        !           492:        f=src/bed/Makefile
        !           493:        $editor $f <<EOF
        !           494:        /^LDFLAGS=/s?LDFLAGS=.*?LDFLAGS= -i?
        !           495:        w
        !           496:        q
        !           497: EOF
        !           498:        f=src/bsmall/Makefile
        !           499:        $editor $f <<EOF
        !           500:        /^LDFLAGS=/s?LDFLAGS=.*?LDFLAGS= -i?
        !           501:        w
        !           502:        q
        !           503: EOF
        !           504:        ;;
        !           505: esac
        !           506: 
        !           507: : 'Not all CFLAGS are used by all sources.'
        !           508: : 'But for convenience and future use, we put them into all source Makefiles.'
        !           509: 
        !           510: cflags="-O $fflag -DNDEBUG"
        !           511: 
        !           512: for f in Makefile src/b/b.sh src/bed/Makefile
        !           513: do
        !           514:        $editor $f <<EOF
        !           515:        /^BINT=/s?BINT=.*?BINT=$bint?
        !           516:        w
        !           517:        q
        !           518: EOF
        !           519: done
        !           520: 
        !           521: case $bint in
        !           522: bsmall)
        !           523:        f=Makefile
        !           524:        $editor $f <<EOF
        !           525:        /examples$/s?make .*examples?make smallexamples?
        !           526:        w
        !           527:        q
        !           528: EOF
        !           529:        cflags="$cflags -DSMALLSYS"
        !           530:        ;;
        !           531: esac
        !           532: 
        !           533: case $unix in
        !           534: BSD|BSD4_2|PWB)
        !           535:        cflags="$cflags -D$unix"
        !           536:        ;;
        !           537: ATT)
        !           538:        cflags="$cflags -Dindex=strchr -Drindex=strrchr"
        !           539:        ;;
        !           540: esac
        !           541: 
        !           542: case $termio in
        !           543: yes)
        !           544:        cflags="$cflags -DTERMIO"
        !           545:        ;;
        !           546: esac
        !           547: 
        !           548: for f in src/b/Makefile src/bed/Makefile src/$bint/Makefile
        !           549: do
        !           550:        $editor $f <<EOF
        !           551:        /^CFLAGS=/s?CFLAGS=.*?CFLAGS= $cflags?
        !           552:        w
        !           553:        q
        !           554: EOF
        !           555: done
        !           556: 
        !           557: case $termlib in
        !           558: -l*|/*)
        !           559:        f=src/bed/Makefile
        !           560:        $editor $f <<EOF
        !           561:        /^TERMLIB=/s?.*?TERMLIB= $termlib?
        !           562:        /^OWNTLIB=/s?.*?OWNTLIB=?
        !           563:        w
        !           564:        q
        !           565: EOF
        !           566:        ;;
        !           567: libtermcap.a)
        !           568:        f=src/bed/Makefile
        !           569:        $editor $f <<EOF
        !           570:        /^TERMLIB=/s?.*?TERMLIB=?
        !           571:        /^OWNTLIB=/s?.*?OWNTLIB= libtermcap.a?
        !           572:        w
        !           573:        q
        !           574: EOF
        !           575:        ;;
        !           576: esac
        !           577: 
        !           578: #case $termcap in
        !           579: #no)
        !           580: #      f=src/b/Makefile
        !           581: #      $editor $f <<"EOF"
        !           582: #      /^install:/s?.*?install:        all ldest termcap?
        !           583: #      w
        !           584: #      q
        !           585: #EOF
        !           586: #      ;;
        !           587: #esac
        !           588: 
        !           589: case $public in
        !           590: yes)
        !           591:        f=Makefile
        !           592:        $editor $f <<EOF
        !           593:        /^BDIR=/s?BDIR=.*?BDIR=$bdir?
        !           594:        /^MAN1DIR=/s?MAN1DIR=.*?MAN1DIR=$man1dir?
        !           595:        /^MAN5DIR=/s?MAN5DIR=.*?MAN5DIR=$man5dir?
        !           596:        /^LIBDIR=/s?LIBDIR=.*?LIBDIR=$libdir?
        !           597:        w
        !           598:        q
        !           599: EOF
        !           600:        ;;
        !           601: esac
        !           602: 
        !           603: echo "done."
        !           604: 
        !           605: echo " "
        !           606: echo "This completes the setup of the B system."
        !           607: echo "You can now try 'make all'."

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.