Add externs to avoid multiple definitions, and then add missing definitions.
[rrq/maintain_lilo.git] / diagnose / Makefile
1 # -*- makefile -*-
2 # Makefile for BCC tests
3
4 # adding variables
5 include ../make.vars
6
7 MODEL=s
8 CC = bcc -M$(MODEL)
9 CPP = gcc -E
10 CINCL = /usr/lib/bcc/include
11 AS = as86
12 LINK = $(CC) -v
13 COPT = -ansi -I$(CINCL) -c -O -DDEBUG=0
14 LOPT = -m >$*.map -M -d
15 AOPT = -0 -a -w
16 FD = msdos.b
17 FDSIZE = 1440
18 MFILE=/tmp/liloboot
19 LOOP=/dev/loop5
20
21 .SUFFIXES:  .com .S
22
23 .c.o:
24         $(CC) $(COPT) -o $@ $< -A-l -A$*.lis
25
26 .o.com:
27         $(LINK) $(LOPT) -o $@ $^
28
29 .s.o:
30         $(AS) $(AOPT) -l $*.lis -o $@ $<
31
32 all:  check test4d.com test4.com test5.com bootdiagnostic.b.gz
33
34 check:
35         # You need the bcc compiler for some steps!
36         @if [ -x /usr/bin/bcc -o -x /usr/local/bin/bcc ]; then echo Okay; \
37         else echo "*** WARNING ***"; \
38                 echo "You don't seem to have the 'bcc' compiler from the 'dev86' package. "; \
39                 echo "***************"; exit 1; \
40         fi
41
42 floppy:  bootdiagnostic.b.gz
43         @echo
44         @echo Insert a blank, formatted, floppy into drive 0
45         @echo "Press <Enter> to continue, <^C> to abort ..."
46         @read
47         gzip -d <bootdiagnostic.b.gz | dd of=/dev/fd0 bs=1024
48
49 bootdiagnostic.b.gz:  check2 sector.b test4.com test4d.com
50         rm -rf $(MFILE) bootdiagnostic.b
51         mkdir $(MFILE)
52         dd if=/dev/zero of=bootdiagnostic.b bs=1024 count=$(FDSIZE)
53         mkfs.msdos bootdiagnostic.b
54         dd if=sector.b bs=2 count=1 of=floppy.b
55         dd if=bootdiagnostic.b bs=2 skip=1 count=30 >>floppy.b
56         dd if=sector.b bs=2 skip=31 count=225 >>floppy.b
57         mount -t msdos -o loop=$(LOOP) bootdiagnostic.b $(MFILE)
58         dd if=floppy.b of=$(LOOP) bs=512
59         chown 0.0 *.com
60         cp -ufv ../COPYING $(MFILE)
61         cp -ufv test4.com $(MFILE)/hipboot.sys
62         cp -ufv test4.com $(MFILE)/diag2sa.com
63         cp -ufv test4d.com $(MFILE)/diag2.com
64         if [ -f ../disk.b ]; then cp -ufv ../disk.b $(MFILE)/diag1.com; fi
65         umount $(MFILE)
66         rm -rf $(MFILE)
67         gzip -9 <bootdiagnostic.b >bootdiagnostic.b.gz
68         rm -f bootdiagnostic.b
69
70 check2:
71         # You need root permissions for some steps! (Test with mkfs.msdos)
72         @if [ `which mkfs.msdos | grep -c mkfs` -eq 1 ]; then echo Okay; \
73         else echo "*** WARNING ***"; \
74                 echo -n "You don't seem to have the commands 'mkfs.msdos'. "; \
75                 echo "Perhaps you are not ROOT ?"; \
76                 echo "***************"; exit 1; \
77         fi
78
79 test4.com:      test4.o bios_start.o cprintf.o
80
81 test5.com:      test5.o bios_start.o cprintf.o
82
83 sector.o:       sector.s
84 test4.o:        test4.c ../src/bdata.h
85 test5.o:        test5.c ../src/bdata.h
86 cprintf.o:      cprintf.c
87 bios_start.o:   bios.c
88         bcc -c -u -I$(CINCL) -DL_bios_start -D__AS386_16__ -D__STANDALONE__ -o bios_start.o bios.c -v
89
90 test4d.o:       test4.c ../src/bdata.h
91         bcc -Md $(COPT) -o $@ $<
92
93 test4d.com:     test4d.o
94         bcc -Md $(LOPT) -o $@ $^
95
96 sector.s:       sector.S
97         $(CPP) -traditional -o $@ $<
98
99 sector.img:     sector.o
100         ld86 -0 -s -o $@ $<
101
102 sector.b:       sector.img
103         dd if=$< of=$@ bs=32 skip=1
104
105 floppy.b:       sector.b
106         dd if=sector.b bs=2 count=1 of=floppy.b
107         dd if=$(FD) bs=2 skip=1 count=30 >>floppy.b
108         dd if=sector.b bs=2 skip=31 count=225 >>floppy.b
109         
110 tidy:
111         rm -f *.map *.lis core
112
113 clean:
114         rm -f *.o *.s *.img *.b *.com *.gz
115
116 distclean:  clean
117         rm -f *~
118