2
## Linux Loader for SPARC
10
# Relocate to 2.5MB. The Hitchhiker's Guide to Open Boot Rev 3 claims
11
# that 3MB are guaranteed to be mapped.
12
# Changing this value will require changing a bunch of other constants throughout the code
13
LDFLAGS=-N -Ttext 0x4000
16
$(CC) $(CFLAGS) -c $*.S
18
all: first.b first.h ultra.b ultra.h generic.b generic.h fd.b ieee32.b
21
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define DIGIT_OFFSET_TMP 0x\2/p' < first.map > first.h
22
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define LETTER_OFFSET_TMP 0x\2/p' < first.map >> first.h
23
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define NUMBER_OFFSET_TMP 0x\2/p' < first.map >> first.h
25
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define ULTRA_LETTER_OFFSET_TMP 0x\2/p' < ultra.map > ultra.h
26
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define ULTRA_NUMBER_OFFSET_TMP 0x\2/p' < ultra.map >> ultra.h
28
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define GENERIC_DIGIT_OFFSET_TMP 0x\2/p' < generic.map > generic.h
29
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define GENERIC_LETTER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h
30
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define GENERIC_NUMBER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h
32
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define FD_DIGIT_OFFSET_TMP 0x\2/p' < fd.map > fd.h
33
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define FD_LETTER_OFFSET_TMP 0x\2/p' < fd.map >> fd.h
36
$(CC) $(CFLAGS) -c first.S -o first.o
39
$(LD) $(LDFLAGS) -o first first.o
40
$(NM) first | grep -v '*ABS*' | sort > first.map
44
$(ELFTOAOUT) -o first.b first
45
printf 'SILO'$(IMGVERSION) | $(DD) of=first.b bs=8 conv=notrunc seek=3 count=1
46
$(DD) if=/dev/zero of=first.b bs=4 count=1 seek=127
49
$(CC) $(CFLAGS) -c -Wa,-Av9a ultra.S
52
$(LD) $(LDFLAGS) -o ultra ultra.o
53
$(NM) ultra | grep -v '*ABS*' | sort > ultra.map
57
$(ELFTOAOUT) -o ultra.b ultra
58
printf 'SILO'$(IMGVERSION) | $(DD) of=ultra.b bs=8 conv=notrunc seek=3 count=1
59
printf '\340' | $(DD) of=ultra.b bs=1 count=1 seek=7 conv=notrunc
60
$(DD) if=/dev/zero of=ultra.b bs=4 count=1 seek=127
63
$(CC) $(CFLAGS) -c -Wa,-Av9a generic.S
66
$(LD) $(LDFLAGS) -o generic generic.o
67
$(NM) generic | grep -v '*ABS*' | sort > generic.map
71
$(ELFTOAOUT) -o generic.b generic
72
printf 'SILO'$(IMGVERSION) | $(DD) of=generic.b bs=8 conv=notrunc seek=3 count=1
73
printf '\340' | $(DD) of=generic.b bs=1 count=1 seek=7 conv=notrunc
74
$(DD) if=/dev/zero of=generic.b bs=4 count=1 seek=255
77
$(CC) $(CFLAGS) -c -Wa,-Av9a fd.S
80
$(LD) $(LDFLAGS) -o fd fd.o
81
$(NM) fd | grep -v '*ABS*' | sort > fd.map
85
$(ELFTOAOUT) -o fd.b fd
86
printf 'SILO'$(IMGVERSION) | $(DD) of=fd.b bs=8 conv=notrunc seek=3 count=1
87
printf '\340' | $(DD) of=fd.b bs=1 count=1 seek=7 conv=notrunc
88
$(DD) if=/dev/zero of=fd.b bs=4 count=1 seek=255
90
ieee32.o: ieee32.S ieee32.h
91
$(CC) $(CFLAGS) -DIMGVERSION='"SILO$(IMGVERSION)"' -c ieee32.S
94
$(LD) $(LDFLAGS) -o ieee32.b ieee32.o
95
$(NM) ieee32.b | grep -v '*ABS*' | sort > ieee32.map
100
$(RM) *.o *.map *.b first first.h ultra ultra.h \
101
generic generic.h fd fd.h