diff options
Diffstat (limited to 'rbutil/mkamsboot/Makefile')
-rw-r--r-- | rbutil/mkamsboot/Makefile | 106 |
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 @@ | |||
1 | CC=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 |
4 | CFLAGS=-I../../tools/ucl/include | 2 | CFLAGS=-I../../tools/ucl/include -Wall |
5 | LIBUCL=../../tools/ucl/src/libucl.a | 3 | LIBUCL=../../tools/ucl/src/libucl.a |
6 | 4 | ||
7 | # Edit the following variables (plus copy/paste another set of rules) when | 5 | ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) |
8 | # adding a new target. mkamsboot.c also needs to be edited to refer to these | 6 | OUTPUT=mkamsboot.exe |
9 | # new images. | 7 | CFLAGS+=-mno-cygwin |
10 | 8 | else | |
11 | BOOTIMAGES = dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o | 9 | ifeq ($(findstring MINGW,$(shell uname)),MINGW) |
12 | BOOTHEADERS = dualboot_clip.h dualboot_e200v2.h dualboot_c200v2.h dualboot_m200v4.h dualboot_fuze.h | 10 | OUTPUT=mkamsboot.exe |
13 | 11 | else | |
14 | CLIPFILES = dualboot_clip.arm-o dualboot_clip.o dualboot_clip.c dualboot_clip.h | 12 | ifeq ($(findstring mingw,$(CC)),mingw) |
15 | 13 | OUTPUT=mkamsboot.exe | |
16 | E200V2FILES = dualboot_e200v2.arm-o dualboot_e200v2.o dualboot_e200v2.c \ | 14 | else |
17 | dualboot_e200v2.h | 15 | OUTPUT=mkamsboot |
18 | 16 | endif | |
19 | M200V4FILES = dualboot_m200v4.arm-o dualboot_m200v4.o dualboot_m200v4.arm-bin \ | 17 | endif |
20 | dualboot_m200v4.c dualboot_m200v4.h | 18 | endif |
21 | 19 | ||
22 | C200V2FILES = dualboot_c200v2.arm-o dualboot_c200v2.o dualboot_c200v2.c \ | 20 | CC?= gcc |
23 | dualboot_c200v2.h | 21 | |
24 | 22 | all: $(OUTPUT) | |
25 | FUZEFILES = dualboot_fuze.arm-o dualboot_fuze.o dualboot_fuze.c dualboot_fuze.h | ||
26 | |||
27 | all: mkamsboot | ||
28 | |||
29 | # Dualboot bootloaders | ||
30 | |||
31 | dualboot_clip.arm-o: dualboot.S | ||
32 | arm-elf-gcc -DSANSA_CLIP -c -o dualboot_clip.arm-o dualboot.S | ||
33 | |||
34 | dualboot_fuze.arm-o: dualboot.S | ||
35 | arm-elf-gcc -DSANSA_FUZE -c -o dualboot_fuze.arm-o dualboot.S | ||
36 | |||
37 | dualboot_e200v2.arm-o: dualboot.S | ||
38 | arm-elf-gcc -DSANSA_E200V2 -c -o dualboot_e200v2.arm-o dualboot.S | ||
39 | |||
40 | dualboot_m200v4.arm-o: dualboot.S | ||
41 | arm-elf-gcc -DSANSA_M200V4 -c -o dualboot_m200v4.arm-o dualboot.S | ||
42 | |||
43 | dualboot_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 | ||
47 | nrv2e_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 | ||
28 | dualboot.o: dualboot.c | ||
29 | $(CC) $(CFLAGS) -c -o dualboot.o dualboot.c | ||
30 | |||
55 | md5.o: md5.c md5.h | 31 | md5.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 | ||
58 | mkamsboot.o: mkamsboot.c $(BOOTHEADERS) nrv2e_d8.h md5.h | 34 | mkamsboot.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 | ||
61 | mkamsboot: 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 | 40 | libmkamsboot.o: mkamsboot.c dualboot.h md5.h |
81 | %.o: %.S | 41 | $(CC) $(CFLAGS) -DLIB -c -o libmkamsboot.o -W -Wall mkamsboot.c |
82 | 42 | ||
83 | bin2c: bin2c.c | 43 | libmkamsboot.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 | ||
86 | clean: | 46 | clean: |
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) | ||