|
|
1.1 root 1: SYS=research
2: < $SYS.mk
3: CFLAGS="$CFLAGS -A"
4: JL=juke.a
5: X=shelves jinit cold warm load allocate # getstatus iodr_sh lib
6: JLIB=${X:%=$JL(%.o)}
7: JSRC=${X:%=%.c}
8:
9: SL=scsi.a
10: X=s_$IO ge_sense s_volid s_pperror s_fixedstr s_longat s_xd
11: SLIB=${X:%=$SL(%.o)}
12:
13: SHL=scsish.a
14: GENERIC=ge_dev ge_inq ge_capacity ge_display ge_stop ge_start\
15: ge_reset ge_tur ge_scsi ge_readt ge_read # ge_sense in $SL
16: SONY=so_dev so_inq so_alt so_config so_sense \
17: so_i0.tab so_i1.tab so_scsi.tab so_nesd.tab \
18: so_status so_set so_shelfside so_diskid so_copy so_eject \
19: so_media so_rel so_internal so_readid so_juke
20: WREN=wr_dev wr_inq wr_driver wr_elite wr_mpage wr_wren5 #wr_rmode wr_wmode wr_diag
21: X=$GENERIC $SONY $WREN
22: SHLIB=${X:%=$SHL(%.o)}
23:
24: TL=tcl.a
25: X=tclAssem tclBasic tclCmdAH tclCmdIZ tclExpr tclGlob tclHistory\
26: tclProc tclUtil
27: TLIB=${X:%=$TL(%.o)}
28:
29: all:V: scsish jukebox
30:
31: both:V: ../jukebox ../scsish
32:
33: ../%: %
34: cp $prereq $target
35:
36: jukebox: jukebox.o $JL $SHL $SL
37: $CC $CFLAGS -o $target $prereq $LDFLAGS
38:
39: scsish: scsish.o $SHL $SL $TL
40: $CC $CFLAGS -o $target $prereq $LDFLAGS
41:
42: jpp:V:
43: pr mkfile juke.h scsi.h jukebox.c $JSRC | lp -ddp -n2
44:
45: poot:V: scsish
46: echo 'id 5; dev wren
47: modesense; modeselect gc maxpref 23' | scsish
48: #echo capacity 0 | scsish
49:
50: poot1:V: scsish
51: echo 'read 0 2644042 10 temp' | scsish
52: ls -l temp
53:
54: scsi.cpio:V: inc/scsi.h
55: find * -print | sed -e '/\.[oa]$/d' -e '/\.cpio$/d' | cpio -oc > $target
56: inc/scsi.h:Pcmp -s: /usr/include/scsi.h
57: cp $prereq $target
58:
59:
60: # below is just magic; believe it.
61:
62: $JL(%.o):N: %.o
63: $JL:Q: $JLIB
64: names=`membername $newprereq`
65: ar rv $JL $names && rm $names
66: $RANLIB $JL
67:
68: $SL(%.o):N: %.o
69: $SL:Q: $SLIB
70: names=`membername $newprereq`
71: ar rv $SL $names && rm $names
72: $RANLIB $SL
73:
74: $SHL(%.o):N: %.o
75: $SHL:Q: $SHLIB
76: names=`membername $newprereq`
77: ar rv $SHL $names && rm $names
78: $RANLIB $SHL
79:
80: $TL(%.o):N: %.o
81: $TL:Q: $TLIB
82: names=`membername $newprereq`
83: ar rv $TL $names && rm $names
84: $RANLIB $TL
85:
86: s_%.o: scsi/%.c
87: cd scsi; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
88: so_%.o: sony/%.c
89: cd sony; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
90: so_%.o: sony/fns.h
91: ge_%.o: generic/%.c
92: cd generic; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
93: ge_%.o: generic/fns.h
94: wr_%.o: wren/%.c
95: cd wren; $CC $CFLAGS -c $stem.c && mv $stem.o ../$target
96: wr_%.o: wren/fns.h
97: so_%.o wr_%.o ge_%.o: scsish.h scsi.h
98: s_%.o: scsi.h
99: tcl%.o: tcl/tcl%.c
100: cd tcl; $CC $CFLAGS -c -I. -DTCL_VERSION=\"3.3\" -I.. tcl$stem.c && mv tcl$stem.o ../$target
101: tcl%.o: tcl.h
102:
103: so_%.tab.o:Q: sony/%.tab
104: cd sony
105: echo generating $target
106: p=$stem.tab
107: awk -F' ' '
108: 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;
109: h["8"]=8;h["9"]=9;h["a"]=10;h["b"]=11;h["c"]=12;h["d"]=13;h["e"]=14;h["f"]=15;
110: }
111: function done( i){
112: for(i = 0; i < 256; i++) if(x[i]){
113: print "\t\"" x[i] "\","
114: x[i] = ""
115: } else printf "\t\"<#%x>\",\n", i
116: print "};"
117: }
118: function hex(n, i){
119: return(h[substr(n, 1, 1)]*16+h[substr(n, 2, 1)]);
120: }
121: NF == 1 { if(NR > 1) done(); print "char *" $1 "[] = {" }
122: NF > 1 { x[hex($1)] = $2; }
123: END { done(); }' < $p > $p.c && $CC $CFLAGS -c $p.c && mv $p.o ../$target
124: rm $p.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.