|
|
1.1 root 1: # bld - make 386 kernel
2: #
3: # requires a running 386 kernel
4: #
5:
6: # make sure the environment is set for kernel objects
7: if [ $K386OBJ ]
8: then
9: :
10: else
11: echo "Error - K386OBJ environment variable not set!"
12: exit 1
13: fi
14:
15: # make sure the environment is set for kernel libraries
16: if [ $K386LIB ]
17: then
18: :
19: else
20: echo "Error - K386LIB environment variable not set!"
21: exit 1
22: fi
23:
24: #CFLAGS=${CFLAGS-"-DTRACER -VPSTR -D__COHERENT__"}
25: CFLAGS=${CFLAGS-"-DTRACER -VPSTR"}
26: CC=${CC-"exec /bin/cc"}
27:
28: OPTS="${K386OBJ}/tty.o ${K386OBJ}/pipe.o ${K386OBJ}/putchar.o"
29: OPTS=${OPTS}" ${K386OBJ}/rm.o ${K386OBJ}/fdc.o ${K386OBJ}/fl386.o"
30: OPTS=${OPTS}" ${K386OBJ}/ipc.o"
31:
32: DEFAULT_KB=y
33: DEFAULT_ASYNC=y
34: DEFAULT_MM=y
35: DEFAULT_HD=y
36: USE_ASY=n
37: USE_LP=y
38: USE_PTY=y
39: USE_ASYNC=y
40: MAKE_LIBS=y
41: PATCH="flCon=fl386con"
42: KEROBJ=${K386LIB}/ker386.o
43: TARGET=/at386.tst
44: ASYNC=/etc/default/async
45:
46: # Each drvl entry is 0x14, or 20 decimal, bytes.
47:
48: while [ $# -gt 0 ]
49: do
50: ARG=$1
51: case $ARG in
52: aha)
53: OPTS=${OPTS}" ${K386OBJ}/aha_dsl.o ${K386OBJ}/aha.o ${K386OBJ}/scsi.o"
54: PATCH="${PATCH} drvl+260=sdcon"
55: ;;
56: al)
57: OPTS=${OPTS}" ${K386OBJ}/alx.o ${K386OBJ}/com1.o ${K386OBJ}/com2.o"
58: PATCH="${PATCH} drvl+100=a0con drvl+120=a1con"
59: DEFAULT_ASYNC=n
60: ;;
61: asy)
62: OPTS=${OPTS}" ${K386OBJ}/asy.o"
63: PATCH="${PATCH} drvl+100=asycon"
64: USE_ASY=y
65: DEFAULT_ASYNC=n
66: ;;
67: at)
68: OPTS=${OPTS}" ${K386OBJ}/$ARG.o"
69: PATCH="${PATCH} drvl+220=atcon"
70: DEFAULT_HD=n
71: ;;
72: emu)
73: OPTS=${OPTS}" em87.o "
74: ;;
75: hs)
76: OPTS=${OPTS}" ${K386OBJ}/hs.o"
77: PATCH="${PATCH} drvl+140=hscon"
78: DEFAULT_ASYNC=n
79: ;;
80: fha)
81: OPTS=${OPTS}" ${K386OBJ}/stubs.o ${K386OBJ}/at.o ${K386OBJ}/ss.o"
82: OPTS=${OPTS}" ${K386OBJ}/aha_dsl.o ${K386OBJ}/aha.o ${K386OBJ}/scsi.o"
83: PATCH="${PATCH} rootdev=makedev(4,14) pipedev=makedev(8,131) ronflag=1"
84: PATCH="${PATCH} NBUF=64 NHASH=61 NCLIST=16 ALLSIZE=32768"
85: DEFAULT_HD=n
86: USE_PTY=n
87: USE_LP=n
88: USE_ASYNC=n
89: DEFAULT_ASYNC=n
90: ;;
91: fva)
92: OPTS=${OPTS}" stubs.o ${K386OBJ}/at.o ${K386OBJ}/ss.o"
93: OPTS=${OPTS}" ${K386OBJ}/aha_dsl.o ${K386OBJ}/aha.o ${K386OBJ}/scsi.o"
94: PATCH="${PATCH} rootdev=makedev(4,15) pipedev=makedev(8,131) ronflag=1"
95: PATCH="${PATCH} NBUF=64 NHASH=61 NCLIST=16 ALLSIZE=32768"
96: DEFAULT_HD=n
97: USE_PTY=n
98: USE_LP=n
99: USE_ASYNC=n
100: DEFAULT_ASYNC=n
101: ;;
102: kb|kb_d|kb_f|nkb)
103: OPTS=${OPTS}" ${K386OBJ}/$ARG.o"
104: DEFAULT_KB=n
105: ;;
106: nl)
107: MAKE_LIBS=n
108: ;;
109: sc)
110: CFLAGS=${CFLAGS}" -DSERIAL_CONSOLE"
111: ;;
112: ss)
113: OPTS=${OPTS}" ${K386OBJ}/$ARG.o"
114: PATCH="${PATCH} drvl+260=sscon"
115: ;;
116: ticom) # piggy's Tiwanese 4 port card
117: PATCH="${PATCH} AL_ADDR+8=0x2b0 AL_ADDR+12=0x2b8"
118: ;;
119: vt)
120: DEFAULT_KB=n
121: DEFAULT_MM=n
122: OPTS=${OPTS}" ${K386OBJ}/vtmm.o ${K386OBJ}/vtmmas.o ${K386OBJ}/vtnkb.o"
123: ;;
124: vtkb)
125: DEFAULT_KB=n
126: DEFAULT_MM=n
127: OPTS=${OPTS}" ${K386OBJ}/vtmm.o ${K386OBJ}/vtmmas.o ${K386OBJ}/vtkb.o"
128: ;;
129: vtkb_d)
130: DEFAULT_KB=n
131: DEFAULT_MM=n
132: OPTS=${OPTS}" ${K386OBJ}/vtmm.o ${K386OBJ}/vtmmas.o ${K386OBJ}/vtkb_d.o"
133: ;;
134: vtkb_f)
135: DEFAULT_KB=n
136: DEFAULT_MM=n
137: OPTS=${OPTS}" ${K386OBJ}/vtmm.o ${K386OBJ}/vtmmas.o ${K386OBJ}/vtkb_f.o"
138: ;;
139: xl)
140: PATCH="${PATCH} ftCon=ftxlcon PHYS_MEM=589824"
141: OPTS=${OPTS}" ${K386OBJ}/xlft.o ${K386OBJ}/xla.o ${K386OBJ}/xl_dec.o"
142: ;;
143: -a)
144: shift
145: ASYNC=$1
146: ;;
147: -c)
148: shift
149: CFLAGS="$CFLAGS $1"
150: ;;
151: -o)
152: shift
153: TARGET=$1
154: ;;
155: *=*)
156: PATCH="${PATCH} ${ARG}"
157: ;;
158: *)
159: echo "Usage: $0"
160: echo " {aha|al|asy|at|fha|fva|hs|inst|kb|kb_d|kb_f|nkb"
161: echo " |sc|ss|ticom|vt|vtkb|vtkb_d|vtkb_f|xl}"
162: echo " {-o target} {-a async_file} {-c cflags} {addr=value}..."
163: exit 1
164: ;;
165: esac
166: shift
167: done
168:
169: if [ ${USE_LP} = "y" ]
170: then
171: OPTS=${OPTS}" ${K386OBJ}/lp.o"
172: PATCH="${PATCH} drvl+60=lpcon"
173: fi
174: if [ ${USE_PTY} = "y" ]
175: then
176: OPTS=${OPTS}" ${K386OBJ}/pty.o"
177: PATCH="${PATCH} drvl+180=ptycon"
178: fi
179: if [ ${USE_ASYNC} = "y" ]
180: then
181: OPTS=${OPTS}" ${K386OBJ}/albaud.o"
182: fi
183: if [ ${DEFAULT_KB} = "y" ]
184: then
185: OPTS=${OPTS}" ${K386OBJ}/kb.o"
186: fi
187: if [ $DEFAULT_ASYNC = "y" ]
188: then
189: OPTS=${OPTS}" ${K386OBJ}/asy.o"
190: PATCH="${PATCH} drvl+100=asycon"
191: USE_ASY=y
192: fi
193: if [ $DEFAULT_HD = "y" ]
194: then
195: OPTS=${OPTS}" ${K386OBJ}/at.o"
196: PATCH="${PATCH} drvl+220=atcon"
197: fi
198: if [ ${DEFAULT_MM} = "y" ]
199: then
200: OPTS=${OPTS}" ${K386OBJ}/mmas.o ${K386OBJ}/mm.o"
201: fi
202: make "CFLAGS=$CFLAGS" "CC=$CC" ${KEROBJ} || exit 1
203: if [ ${MAKE_LIBS} = "y" ]
204: then
205: make "CFLAGS=$CFLAGS" "CC=$CC" libs || exit 1
206: fi
207: set -x
208:
209: #if [ -f $TARGET ]
210: #then
211: # mv $TARGET $TARGET.old || exit 1
212: #fi
213:
214: ld -K -o $TARGET -e stext ${KEROBJ} ${OPTS} || exit 1
215: if [ -n "${PATCH}" ]
216: then
217: /conf/patch $TARGET $PATCH || exit 1
218: fi
219: if [ ${USE_ASY} = "y" ]
220: then
221: su root /conf/asypatch -v $TARGET < $ASYNC
222: fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.