File: Makefile

package info (click to toggle)
silo 1.4.14%2Bgit20120819-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 1,644 kB
  • sloc: ansic: 13,383; asm: 3,004; makefile: 351; sh: 102; perl: 85
file content (101 lines) | stat: -rw-r--r-- 3,804 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
##
## Linux Loader for SPARC
##
#

DD=dd

include ../Rules.make

# Relocate to 2.5MB. The Hitchhiker's Guide to Open Boot Rev 3 claims
# that 3MB are guaranteed to be mapped.
# Changing this value will require changing a bunch of other constants throughout the code
LDFLAGS=-N -Ttext 0x4000

.S.o:
	$(CC) $(CFLAGS) -c $*.S

all: first.b first.h ultra.b ultra.h generic.b generic.h fd.b ieee32.b

first.h: first
	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
	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
	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
ultra.h: ultra
	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
	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
generic.h: generic
	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
	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
	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
fd.h: fd
	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
	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

first.o: first.S
	$(CC) $(CFLAGS) -c first.S -o first.o

first: first.o
	$(LD) $(LDFLAGS) -o first first.o
	$(NM) first | grep -v '*ABS*' | sort > first.map
	$(STRIP) first

first.b: first
	$(ELFTOAOUT) -o first.b first
	printf 'SILO'$(IMGVERSION) | $(DD) of=first.b bs=8 conv=notrunc seek=3 count=1
	$(DD) if=/dev/zero of=first.b bs=4 count=1 seek=127

ultra.o: ultra.S
	$(CC) $(CFLAGS) -c -Wa,-Av9a ultra.S

ultra: ultra.o
	$(LD) $(LDFLAGS) -o ultra ultra.o
	$(NM) ultra | grep -v '*ABS*' | sort > ultra.map
	$(STRIP) ultra

ultra.b: ultra
	$(ELFTOAOUT) -o ultra.b ultra
	printf 'SILO'$(IMGVERSION) | $(DD) of=ultra.b bs=8 conv=notrunc seek=3 count=1
	printf '\340' | $(DD) of=ultra.b bs=1 count=1 seek=7 conv=notrunc
	$(DD) if=/dev/zero of=ultra.b bs=4 count=1 seek=127

generic.o: generic.S
	$(CC) $(CFLAGS) -c -Wa,-Av9a generic.S

generic: generic.o
	$(LD) $(LDFLAGS) -o generic generic.o
	$(NM) generic | grep -v '*ABS*' | sort > generic.map
	$(STRIP) generic

generic.b: generic
	$(ELFTOAOUT) -o generic.b generic
	printf 'SILO'$(IMGVERSION) | $(DD) of=generic.b bs=8 conv=notrunc seek=3 count=1
	printf '\340' | $(DD) of=generic.b bs=1 count=1 seek=7 conv=notrunc
	$(DD) if=/dev/zero of=generic.b bs=4 count=1 seek=255

fd.o: fd.S
	$(CC) $(CFLAGS) -c -Wa,-Av9a fd.S

fd: fd.o
	$(LD) $(LDFLAGS) -o fd fd.o
	$(NM) fd | grep -v '*ABS*' | sort > fd.map
	$(STRIP) fd

fd.b: fd
	$(ELFTOAOUT) -o fd.b fd
	printf 'SILO'$(IMGVERSION) | $(DD) of=fd.b bs=8 conv=notrunc seek=3 count=1
	printf '\340' | $(DD) of=fd.b bs=1 count=1 seek=7 conv=notrunc
	$(DD) if=/dev/zero of=fd.b bs=4 count=1 seek=255

ieee32.o: ieee32.S ieee32.h
	$(CC) $(CFLAGS) -DIMGVERSION='"SILO$(IMGVERSION)"' -c ieee32.S

ieee32.b: ieee32.o
	$(LD) $(LDFLAGS) -o ieee32.b ieee32.o
	$(NM) ieee32.b | grep -v '*ABS*' | sort > ieee32.map
	$(STRIP) ieee32.b
	chmod 644 ieee32.b

clean:
	$(RM) *.o *.map *.b first first.h ultra ultra.h \
	generic generic.h fd fd.h