summaryrefslogtreecommitdiff
path: root/rbutil/mkamsboot/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/mkamsboot/Makefile')
-rw-r--r--rbutil/mkamsboot/Makefile106
1 files changed, 32 insertions, 74 deletions
diff --git a/rbutil/mkamsboot/Makefile b/rbutil/mkamsboot/Makefile
index 5a62650904..1a5ffd09f3 100644
--- a/rbutil/mkamsboot/Makefile
+++ b/rbutil/mkamsboot/Makefile
@@ -1,90 +1,48 @@
1CC=gcc
2
3# We use the UCL code available in the Rockbox tools/ directory 1# We use the UCL code available in the Rockbox tools/ directory
4CFLAGS=-I../../tools/ucl/include 2CFLAGS=-I../../tools/ucl/include -Wall
5LIBUCL=../../tools/ucl/src/libucl.a 3LIBUCL=../../tools/ucl/src/libucl.a
6 4
7# Edit the following variables (plus copy/paste another set of rules) when 5ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
8# adding a new target. mkamsboot.c also needs to be edited to refer to these 6OUTPUT=mkamsboot.exe
9# new images. 7CFLAGS+=-mno-cygwin
10 8else
11BOOTIMAGES = dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o 9ifeq ($(findstring MINGW,$(shell uname)),MINGW)
12BOOTHEADERS = dualboot_clip.h dualboot_e200v2.h dualboot_c200v2.h dualboot_m200v4.h dualboot_fuze.h 10OUTPUT=mkamsboot.exe
13 11else
14CLIPFILES = dualboot_clip.arm-o dualboot_clip.o dualboot_clip.c dualboot_clip.h 12ifeq ($(findstring mingw,$(CC)),mingw)
15 13OUTPUT=mkamsboot.exe
16E200V2FILES = dualboot_e200v2.arm-o dualboot_e200v2.o dualboot_e200v2.c \ 14else
17 dualboot_e200v2.h 15OUTPUT=mkamsboot
18 16endif
19M200V4FILES = dualboot_m200v4.arm-o dualboot_m200v4.o dualboot_m200v4.arm-bin \ 17endif
20 dualboot_m200v4.c dualboot_m200v4.h 18endif
21 19
22C200V2FILES = dualboot_c200v2.arm-o dualboot_c200v2.o dualboot_c200v2.c \ 20CC?= gcc
23 dualboot_c200v2.h 21
24 22all: $(OUTPUT)
25FUZEFILES = dualboot_fuze.arm-o dualboot_fuze.o dualboot_fuze.c dualboot_fuze.h
26
27all: mkamsboot
28
29# Dualboot bootloaders
30
31dualboot_clip.arm-o: dualboot.S
32 arm-elf-gcc -DSANSA_CLIP -c -o dualboot_clip.arm-o dualboot.S
33
34dualboot_fuze.arm-o: dualboot.S
35 arm-elf-gcc -DSANSA_FUZE -c -o dualboot_fuze.arm-o dualboot.S
36
37dualboot_e200v2.arm-o: dualboot.S
38 arm-elf-gcc -DSANSA_E200V2 -c -o dualboot_e200v2.arm-o dualboot.S
39
40dualboot_m200v4.arm-o: dualboot.S
41 arm-elf-gcc -DSANSA_M200V4 -c -o dualboot_m200v4.arm-o dualboot.S
42
43dualboot_c200v2.arm-o: dualboot.S
44 arm-elf-gcc -DSANSA_C200V2 -c -o dualboot_c200v2.arm-o dualboot.S
45
46# Rules for the ucl unpack function
47nrv2e_d8.arm-o: nrv2e_d8.S
48 arm-elf-gcc -DPURE_THUMB -c -o nrv2e_d8.arm-o nrv2e_d8.S
49
50
51 23
52$(LIBUCL): 24$(LIBUCL):
53 make -C ../../tools/ucl/src libucl.a 25 make -C ../../tools/ucl/src libucl.a
54 26
27# This file can be generated in the dualboot/ directory
28dualboot.o: dualboot.c
29 $(CC) $(CFLAGS) -c -o dualboot.o dualboot.c
30
55md5.o: md5.c md5.h 31md5.o: md5.c md5.h
56 $(CC) $(CFLAGS) -c -o md5.o -W -Wall md5.c 32 $(CC) $(CFLAGS) -c -o md5.o -W -Wall md5.c
57 33
58mkamsboot.o: mkamsboot.c $(BOOTHEADERS) nrv2e_d8.h md5.h 34mkamsboot.o: mkamsboot.c dualboot.h md5.h
59 $(CC) $(CFLAGS) -c -o mkamsboot.o -W -Wall mkamsboot.c 35 $(CC) $(CFLAGS) -c -o mkamsboot.o -W -Wall mkamsboot.c
60 36
61mkamsboot: mkamsboot.o $(BOOTIMAGES) nrv2e_d8.o md5.o $(LIBUCL) 37$(OUTPUT): mkamsboot.o md5.o dualboot.o $(LIBUCL)
62 $(CC) -o mkamsboot mkamsboot.o $(BOOTIMAGES) nrv2e_d8.o md5.o $(LIBUCL) 38 $(CC) $(CFLAGS) -o $(OUTPUT) mkamsboot.o md5.o dualboot.o $(LIBUCL)
63
64# Rules for the ARM code embedded in mkamsboot - assemble, link, then extract
65# the binary code and finally convert to .c/.h for linking with mkamsboot
66
67%.arm-elf: %.arm-o
68 arm-elf-ld -e 0 -Ttext=0 -o $@ $<
69
70%.arm-bin: %.arm-elf
71 arm-elf-objcopy -O binary $< $@
72
73%.c %.h: %.arm-bin bin2c
74 ./bin2c $< $*
75
76# Generic host rule.
77%.o: %.c
78 $(CC) $(CFLAGS) -c -o $@ $<
79 39
80# Cancel the implicit .S -> .o rule 40libmkamsboot.o: mkamsboot.c dualboot.h md5.h
81%.o: %.S 41 $(CC) $(CFLAGS) -DLIB -c -o libmkamsboot.o -W -Wall mkamsboot.c
82 42
83bin2c: bin2c.c 43libmkamsboot.a: libmkamsboot.o md5.o dualboot.o
84 $(CC) -o bin2c bin2c.c 44 $(AR) ruv libmkamsboot.a libmkamsboot.o md5.o dualboot.o
85 45
86clean: 46clean:
87 rm -f mkamsboot mkamsboot.o nrv2e_d8.arm-o nrv2e_d8.arm-elf \ 47 rm -f $(OUTPUT) mkamsboot.o *~ md5.o dualboot.o \
88 nrv2e_d8.arm-bin *~ bin2c nrv2e_d8.c nrv2e_d8.h nrv2e_d8.o md5.o \ 48 libmkamsboot.o libmkamsboot.a
89 $(BOOTIMAGES) $(CLIPFILES) $(E200V2FILES) $(M200V4FILES) $(FUZEFILES) \
90 $(C200V2FILES)