xref: /original-bsd/sys/vax/stand/Makefile (revision 14929f1c)
1#	@(#)Makefile	7.30 (Berkeley) 05/08/91
2
3DESTDIR=
4STAND=	../../stand
5INCPATH=-I. -I../.. -I${STAND}
6VPATH=	${STAND}:../vax
7
8CC=	cc
9C2=	/usr/libexec/c2
10AS=	as
11
12RELOC=	150000
13
14DEFS=	${INCPATH} -DSTANDALONE -DCOMPAT_42
15MACH=	-DVAX8600 -DVAX8200 -DVAX780 -DVAX750 -DVAX730 -DVAX630 -DVAX650
16
17# Collections of C options:
18#	COPTS	device drivers/assembler, not optimized
19#	SMOPTS	"small" versions for 7.5K bootxx programs
20#	730OPTS	"small" versions for 11/730-only versions
21#	CFLAGS	everything else
22COPTS=	${DEFS} ${MACH}
23SMOPTS=	${DEFS} -DSMALL -DVAX750 -DVAX630 -DVAX650
24730OPTS=-O ${DEFS} -DVAX730
25CFLAGS=	-O ${DEFS} ${MACH}
26
27DRIVERS=autoconf.c hp.c hpmaptype.c ht.c idc.c kdb.c mba.c mt.c qdcons.c \
28	qvcons.c rk.c rl.c tm.c tmscp.c ts.c uba.c uda.c up.c upmaptype.c \
29	ut.c
30DOBJS=	${DRIVERS:.c=.o}
31SRCS=	boot.c bootxx.c cat.c copy.c drtest.c format.c format.c machdep.c \
32	prf.c qfont.c conf.c ../vax/dkbad.c ${DRIVERS}
33DUMMIES=confxx.c
34SMOBJ=	bootxx.o sm_autoconf.o
35LIBS=	libsa/libsa.a libdrive.a ${DESTDIR}/usr/lib/libc.a
36SMLIBS=	libsmsa/libsmsa.a libdrive.a ${DESTDIR}/usr/lib/libc.a
37
38
39# These drivers don't have ecc correction and bad sector forwarding;
40# they are placed in the file system boot area for 750's.  If your
41# root has bad sectors you can try and squeeze the newer drivers in...
42ODRIVERS=sm_hp.o sm_up.o
43
44MDEC=	boothp boothk bootkra bootup bootra bootrl
45ALL=	boot tpboot cat copy tpcopy format tpformat drtest ls \
46	730boot 730copy 730format 730drtest ${MDEC}
47
48all: ${ALL}
49
50libsa/libsa.a::
51	cd libsa; make
52libsmsa/libsmsa.a::
53	cd libsa; make
54
55libdrive.a: conf.o dkbad.o machdep.o prf.o qfont.o ${DOBJS}
56	ar crv $@ $?
57	ranlib $@
58
59${DOBJS}:
60	${CC} -c -S ${COPTS} $*.c
61	${C2} -i $*.s | as -o $*.o
62	rm -f $*.s
63
64# startups
65
66srt0.o: srt0.c ../include/mtpr.h ../include/cpu.h
67	${CC} -E -DRELOC=0x${RELOC} ${COPTS} srt0.c | as -o srt0.o
68
69tpsrt0.o: srt0.c ../include/mtpr.h ../include/cpu.h
70	${CC} -E -DRELOC=0x${RELOC} -DTP ${COPTS} srt0.c | as -o tpsrt0.o
71
72relsrt0.o: srt0.c ../include/mtpr.h ../include/cpu.h
73	${CC} -E -DRELOC=0x${RELOC} -DREL ${COPTS} srt0.c | as -o relsrt0.o
74
75# bootable from tape
76
77tpboot: tpboot.o relsrt0.o ${LIBS}
78	ld -N -T ${RELOC} relsrt0.o tpboot.o ${LIBS}
79	strip a.out; dd if=a.out of=tpboot ibs=32 skip=1; rm -f a.out
80
81tpboot.o: boot.o
82	rm -f $*.c
83	ln -s boot.c $*.c
84	${CC} -c ${CFLAGS} -DJUSTASK $*.c
85	rm -f $*.c
86
87tpcopy: copy.o tpsrt0.o ${LIBS}
88	ld -N tpsrt0.o copy.o ${LIBS}
89	strip a.out; dd if=a.out of=tpcopy ibs=32 skip=1; rm -f a.out
90
91tpformat: tpformat.o tpsrt0.o confhpup.o ${LIBS}
92	ld -N tpsrt0.o tpformat.o confhpup.o ${LIBS}
93	strip a.out; dd if=a.out of=tpformat ibs=32 skip=1; rm -f a.out
94
95tpformat.o: format.o
96	rm -f $*.c
97	ln -s format.c $*.c
98	${CC} -c ${CFLAGS} -DJUSTEXIT $*.c
99	rm -f $*.c
100
101# bootable from floppy or real disks
102
103boot: boot.o relsrt0.o bootconf.o ${LIBS}
104	ld -N -T ${RELOC} -o $@ relsrt0.o boot.o bootconf.o ${LIBS}
105
106bootconf.o: conf.o
107	rm -f $*.c
108	ln -s conf.c $*.c
109	${CC} -c ${CFLAGS} -DBOOT $*.c
110	rm -f $*.c
111
112copy: copy.o srt0.o getfile.o ${LIBS}
113	ld -N -o $@ srt0.o copy.o getfile.o ${LIBS}
114
115cat: cat.o srt0.o getfile.o ${LIBS}
116	ld -N -o $@ srt0.o cat.o getfile.o ${LIBS}
117
118ls: ls.o srt0.o ${LIBS}
119	ld -N -o $@ srt0.o ls.o ${LIBS}
120
121format: format.o srt0.o confhpup.o ${LIBS}
122	ld -N -o $@ srt0.o format.o confhpup.o ${LIBS}
123
124drtest: drtest.o srt0.o confhpup.o ${LIBS}
125	ld -N -o $@ srt0.o drtest.o confhpup.o ${LIBS}
126
127# for 730s minimize size to avoid microcode botch
128# (won't load files larger than 12.5 Kbytes)
129
130730boot.o: boot.o
131	rm -f $*.c
132	ln -s boot.c $*.c
133	${CC} -c ${730OPTS} $*.c
134	rm -f $*.c
135
136730boot: 730boot.o relsrt0.o 730bootconf.o ${LIBS}
137	ld -N -T ${RELOC} -o 730boot relsrt0.o 730boot.o 730bootconf.o ${LIBS}
138
139730bootconf.o: conf.o
140	rm -f $*.c
141	ln -s conf.c $*.c
142	${CC} -c ${730OPTS} -DBOOT $*.c
143	rm -f $*.c
144
145730copy: copy.o srt0.o 730conf.o ${LIBS}
146	ld -N -o $@ srt0.o copy.o 730conf.o ${LIBS}
147
148730drtest: drtest.o srt0.o confup.o ${LIBS}
149	ld -N -o $@ srt0.o drtest.o confup.o ${LIBS}
150
151730format: format.o srt0.o confup.o ${LIBS}
152	ld -N -o $@ srt0.o format.o confup.o ${LIBS}
153
154730conf.o: conf.o
155	rm -f $*.c
156	ln -s conf.c $*.c
157	${CC} -c ${730OPTS} $*.c
158	rm -f $*.c
159
160# bootstrap from ether
161
162### not yet, rosin, not yet ###
163
164# getting booted from disc
165
166boothk: relsrt0.o confrk.o ${SMOBJ} ${LIBS}
167	ld -N -T ${RELOC} relsrt0.o confrk.o ${SMOBJ} ${LIBS}
168	size a.out
169	rm -f $@
170	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
171	ls -l $@
172
173boothp: relsrt0.o confhp.o sm_hp.o ${SMOBJ} ${SMLIBS}
174	ld -N -T ${RELOC} relsrt0.o confhp.o sm_hp.o ${SMOBJ} ${SMLIBS}
175	size a.out
176	rm -f $@
177	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
178	ls -l $@
179
180bootkra: relsrt0.o confkra.o ${SMOBJ} ${SMLIBS}
181	ld -N -T ${RELOC} relsrt0.o confkra.o ${SMOBJ} ${SMLIBS}
182	size a.out
183	rm -f $@
184	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
185	ls -l $@
186
187bootup: relsrt0.o confup.o sm_up.o ${SMOBJ} ${SMLIBS}
188	ld -N -T ${RELOC} relsrt0.o confup.o sm_up.o ${SMOBJ} ${SMLIBS}
189	size a.out
190	rm -f $@
191	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
192	ls -l $@
193
194bootra: relsrt0.o confra.o ${SMOBJ} ${SMLIBS}
195	ld -N -T ${RELOC} relsrt0.o confra.o ${SMOBJ} ${SMLIBS}
196	size a.out
197	rm -f $@
198	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
199	ls -l $@
200
201bootrl: relsrt0.o confrl.o ${SMOBJ} ${SMLIBS}
202	ld -N -T ${RELOC} relsrt0.o confrl.o ${SMOBJ} ${SMLIBS}
203	size a.out
204	rm -f $@
205	strip a.out;dd if=a.out of=$@ ibs=32 skip=1;rm -f a.out
206	ls -l $@
207
208sm_hp.o: hp.o
209	rm -f sm_hp.c
210	ln -s hp.c sm_hp.c
211	${CC} -S ${SMOPTS} sm_hp.c
212	${C2} -i sm_hp.s | as -o sm_hp.o
213	rm -f sm_hp.s sm_hp.c
214
215sm_up.o: up.o
216	rm -f sm_up.c
217	ln -s up.c sm_up.c
218	${CC} -S ${SMOPTS} sm_up.c
219	${C2} -i sm_up.s | as -o sm_up.o
220	rm -f sm_up.s sm_up.c
221
222sm_autoconf.o: autoconf.o
223	rm -f sm_autoconf.c
224	ln -s autoconf.c sm_autoconf.c
225	${CC} -c -O ${SMOPTS} sm_autoconf.c
226	rm -f sm_autoconf.c
227
228confrk.o: confrk.c confxx.o
229confhp.o: confhp.c confxx.o
230confkra.o: confkra.c confxx.o
231confup.o: confup.c confxx.o
232confra.o: confra.c confxx.o
233confrl.o: confrl.c confxx.o
234
235# These are currently not compiled using -DSMALL; doing so would result in
236# some extra space.  See the i386/stand code for examples.
237
238confxx.o:
239	touch confxx.o
240
241confrk.c: confxx.c ${STAND}/dev.c
242	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confrk.c
243	sed -e 's/XX/hk/' -e 's/xx/rk/g'	< confxx.c >> confrk.c
244confhp.c: confxx.c ${STAND}/dev.c
245	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confhp.c
246	sed -e 's/XX/hp/' -e 's/xx/hp/g'	< confxx.c >> confhp.c
247confkra.c: confxx.c ${STAND}/dev.c
248	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confkra.c
249	sed -e 's/XX/kra/' -e 's/xx/kra/g'	< confxx.c >> confkra.c
250confup.c: confxx.c ${STAND}/dev.c
251	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confup.c
252	sed -e 's/XX/up/' -e 's/xx/up/g'	< confxx.c >> confup.c
253confra.c: confxx.c ${STAND}/dev.c
254	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confra.c
255	sed -e 's/XX/ra/' -e 's/xx/ra/g'	< confxx.c >> confra.c
256confrl.c: confxx.c ${STAND}/dev.c
257	sed -e 's/io->i_dev/0/g'		< ${STAND}/dev.c > confrl.c
258	sed -e 's/XX/rl/' -e 's/xx/rl/g'	< confxx.c >> confrl.c
259
260clean:
261	rm -f *.o *.exe *.i sm_*.c libsa.a
262	rm -f boot[a-wyz][a-z].c conf[a-wyz][a-z].c confkra.c
263	rm -f ${ALL} a.out core errs sboot bootconf.c
264	cd ${STAND}; make clean
265	cd ${STAND}/small; make clean
266
267cleandir: clean
268	rm -f ${MAN} tags .depend
269
270depend: ${SRCS}
271	mkdep ${INCPATH} -DSTANDALONE ${SRCS} ${DUMMIES}
272
273install:
274	install -c -s -o bin -g bin -m 644 \
275	    format cat copy drtest ls ${DESTDIR}/stand
276	[ -d ../vaxdist/tp ] || mkdir ../vaxdist/tp
277	cp tpcopy ../vaxdist/tp/copy
278	cp tpboot ../vaxdist/tp/boot
279	cp tpformat ../vaxdist/tp/format
280	cp boot a.out; strip a.out; \
281		dd if=a.out of=../floppy/boot bs=32 skip=1; rm a.out
282	cp 730boot a.out; strip a.out; \
283		dd if=a.out of=../cassette/boot.730 bs=32 skip=1; rm a.out
284	cp ../floppy/boot ../cassette/boot.750
285	cp ../floppy/boot ../consolerl/boot
286	cp copy a.out; strip a.out; \
287		dd if=a.out of=../floppy/copy bs=32 skip=1; rm a.out
288	cp 730copy a.out; strip a.out; \
289		dd if=a.out of=../cassette/copy.730 bs=32 skip=1; rm a.out
290	cp ../floppy/copy ../cassette/copy.750
291	cp ../floppy/copy ../consolerl/copy
292	cp format a.out; strip a.out; \
293		dd if=a.out of=../floppy/format bs=32 skip=1; rm a.out
294	cp 730format a.out; strip a.out; \
295		dd if=a.out of=../cassette/format.730 bs=32 skip=1; rm a.out
296	cp ../floppy/format ../cassette/format.750
297	cp ../floppy/format ../consolerl/format
298	cp drtest a.out; strip a.out; \
299		dd if=a.out of=../floppy/drtest bs=32 skip=1; rm a.out
300	cp 730drtest a.out; strip a.out; \
301		dd if=a.out of=../cassette/drtest.730 bs=32 skip=1; rm a.out
302	cp ../floppy/drtest ../cassette/drtest.750
303	cp ../floppy/drtest ../consolerl/drtest
304	install -c -o bin -g bin -m 444 ${MDEC} ${DESTDIR}/usr/mdec
305	rm -f ${DESTDIR}/usr/mdec/bootrd
306	ln ${DESTDIR}/usr/mdec/bootra ${DESTDIR}/usr/mdec/bootrd
307
308lint: ${SRCS}
309	lint ${COPTS} -hxbn boot.c ${SRCS} | \
310	    sed -e '/possible pointer alignment/d' \
311		-e '/struct\/union .* never defined/d'
312
313tags: ${SRCS}
314	ctags ${SRCS} ${DUMMIES}
315