Annotation of researchv10no/cmd/worm/oscsi/mkfile, revision 1.1.1.1

1.1       root        1: SYS=research
                      2: < $SYS.mk
                      3: JL=juke.a
                      4: X=allocate cold getstatus ioshelves iodr_sh lib load nlun warm
                      5: JLIB=${X:%=$JL(%.o)}
                      6: JSRC=${X:%=%.c}
                      7: 
                      8: SL=scsi.a
                      9: X=s_$IO ge_sense s_volid s_pperror s_fixedstr s_longat s_xd
                     10: SLIB=${X:%=$SL(%.o)}
                     11: 
                     12: SHL=scsish.a
                     13: GENERIC=ge_dev ge_inq ge_stop ge_start ge_capacity ge_display\
                     14:        ge_reset ge_tur ge_scsi ge_readt ge_copy # ge_sense in $SL
                     15: SONY=so_dev so_inq so_alt so_config so_status so_eject so_rel so_set\
                     16:        so_shelfside so_diskid so_internal so_media so_readid so_copy\
                     17:        so_i0.tab so_i1.tab so_scsi.tab so_sense so_nesd.tab
                     18: WREN=wr_dev wr_inq wr_rmode wr_wmode wr_diag
                     19: X=$GENERIC $SONY $WREN
                     20: SHLIB=${X:%=$SHL(%.o)}
                     21: 
                     22: all:V: jukebox scsish
                     23: 
                     24: both:V:        ../jukebox ../scsish
                     25: 
                     26: ../%:  %
                     27:        cp $prereq $target
                     28: 
                     29: jukebox:       jukebox.o $JL $SHL $SL
                     30:        $CC $CFLAGS -o $target $prereq $LDFLAGS
                     31: 
                     32: scsish:        scsish.o $SHL $SL
                     33:        $CC $CFLAGS -o $target $prereq $LDFLAGS
                     34: 
                     35: jpp:V:
                     36:        pr mkfile juke.h scsi.h jukebox.c $JSRC | lp -ddp -n2
                     37: 
                     38: poot:V:        scsish
                     39:        echo 'dev scsi
                     40:        copy 4 0 10 5 0 1' | scsish
                     41: 
                     42: scsi.cpio:V:   inc/scsi.h
                     43:        find * -print | sed -e '/\.[oa]$/d' -e '/\.cpio$/d' | cpio -oc > $target
                     44: inc/scsi.h:Pcmp -s:    /usr/include/scsi.h
                     45:        cp $prereq $target
                     46: 
                     47: 
                     48: # below is just magic; believe it.
                     49: 
                     50: $JL(%.o):N:    %.o
                     51: $JL:Q: $JLIB
                     52:        names=`membername $newprereq`
                     53:        ar rv $JL $names && rm $names
                     54:        $RANLIB $JL
                     55: 
                     56: $SL(%.o):N:    %.o
                     57: $SL:Q: $SLIB
                     58:        names=`membername $newprereq`
                     59:        ar rv $SL $names && rm $names
                     60:        $RANLIB $SL
                     61: 
                     62: $SHL(%.o):N:   %.o
                     63: $SHL:Q:        $SHLIB
                     64:        names=`membername $newprereq`
                     65:        ar rv $SHL $names && rm $names
                     66:        $RANLIB $SHL
                     67: 
                     68: s_%.o: scsi/%.c
                     69:        cd scsi; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
                     70: so_%.o:        sony/%.c
                     71:        cd sony; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
                     72: so_%.o:        sony/fns.h
                     73: ge_%.o:        generic/%.c
                     74:        cd generic; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
                     75: ge_%.o:        generic/fns.h
                     76: wr_%.o:        wren/%.c
                     77:        cd wren; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
                     78: wr_%.o:        wren/fns.h
                     79: so_%.o wr_%.o ge_%.o:  scsish.h scsi.h
                     80: 
                     81: so_%.tab.o:Q:  sony/%.tab
                     82:        cd sony
                     83:        echo generating $target
                     84:        p=$stem.tab
                     85:        awk -F' ' '
                     86:        BEGIN   { h["0"]=0;h["1"]=1;h["2"]=2;h["3"]=3;h["4"]=4;h["5"]=5;h["6"]=6;h["7"]=7;
                     87:                h["8"]=8;h["9"]=9;h["a"]=10;h["b"]=11;h["c"]=12;h["d"]=13;h["e"]=14;h["f"]=15;
                     88:                }
                     89:        function done(  i){
                     90:                for(i = 0; i < 256; i++) if(x[i]){
                     91:                                print "\t\"" x[i] "\","
                     92:                                x[i] = ""
                     93:                        } else printf "\t\"<#%x>\",\n", i
                     94:                print "};"
                     95:        }
                     96:        function hex(n, i){
                     97:                return(h[substr(n, 1, 1)]*16+h[substr(n, 2, 1)]);
                     98:        }
                     99:        NF == 1 { if(NR > 1) done(); print "char *" $1 "[] = {" }
                    100:        NF > 1  { x[hex($1)] = $2; }
                    101:        END     { done(); }' < $p > $p.c && $CC $CFLAGS -c $p.c && mv $p.o ../$target
                    102:        rm $p.c

unix.superglobalmegacorp.com

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