summaryrefslogtreecommitdiffstats
path: root/rbutil/mkamsboot/dualboot/Makefile
blob: 06b90c7fb9ff7c0a88b7b99709cf029ee513e8bf (plain)
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
CC=gcc

# Edit the following variables (plus copy/paste another set of rules) when
# adding a new target.  mkamsboot.c also needs to be edited to refer to these
# new images.

BOOTOBJS = nrv2e_d8.o dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o dualboot_clipv2.o
BOOTBINS = nrv2e_d8.arm-bin dualboot_clip.arm-bin dualboot_e200v2.arm-bin dualboot_c200v2.arm-bin dualboot_m200v4.arm-bin dualboot_fuze.arm-bin dualboot_clipv2.arm-bin

all: dualboot.h

dualboot.h: $(BOOTBINS)

# Dualboot bootloaders

dualboot_clip.o: dualboot.S
	arm-elf-gcc -DSANSA_CLIP -c -o dualboot_clip.o dualboot.S

dualboot_fuze.o: dualboot.S
	arm-elf-gcc -DSANSA_FUZE -c -o dualboot_fuze.o dualboot.S

dualboot_e200v2.o: dualboot.S
	arm-elf-gcc -DSANSA_E200V2 -c -o dualboot_e200v2.o dualboot.S

dualboot_m200v4.o: dualboot.S
	arm-elf-gcc -DSANSA_M200V4 -c -o dualboot_m200v4.o dualboot.S

dualboot_c200v2.o: dualboot.S
	arm-elf-gcc -DSANSA_C200V2 -c -o dualboot_c200v2.o dualboot.S

dualboot_clipv2.o: dualboot.S
	arm-elf-gcc -DSANSA_CLIPV2 -c -o dualboot_clipv2.o dualboot.S

# Rules for the ucl unpack function
nrv2e_d8.o: nrv2e_d8.S
	arm-elf-gcc -DPURE_THUMB -c -o nrv2e_d8.o nrv2e_d8.S

# Rules for the ARM code embedded in mkamsboot - assemble, link, then extract
# the binary code and finally convert to .h for building in mkamsboot

%.arm-elf: %.o
	arm-elf-ld -e 0 -Ttext=0 -o $@ $<

%.arm-bin: %.arm-elf
	arm-elf-objcopy -O binary $< $@

dualboot.c dualboot.h: $(BOOTBINS) bin2c
	./bin2c dualboot $(BOOTBINS)

bin2c: bin2c.c
	$(CC) -o bin2c bin2c.c

clean:
	rm -f *~ bin2c $(BOOTBINS) $(BOOTOBJS) dualboot.c dualboot.h