CC=gcc # We use the UCL code available in the Rockbox tools/ directory CFLAGS=-I../../tools/ucl/include LIBUCL=../../tools/ucl/src/libucl.a # 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. BOOTIMAGES = dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o BOOTHEADERS = dualboot_clip.h dualboot_e200v2.h dualboot_c200v2.h dualboot_m200v4.h dualboot_fuze.h CLIPFILES = dualboot_clip.arm-o dualboot_clip.o dualboot_clip.c dualboot_clip.h E200V2FILES = dualboot_e200v2.arm-o dualboot_e200v2.o dualboot_e200v2.c \ dualboot_e200v2.h M200V4FILES = dualboot_m200v4.arm-o dualboot_m200v4.o dualboot_m200v4.arm-bin \ dualboot_m200v4.c dualboot_m200v4.h C200V2FILES = dualboot_c200v2.arm-o dualboot_c200v2.o dualboot_c200v2.c \ dualboot_c200v2.h FUZEFILES = dualboot_fuze.arm-o dualboot_fuze.o dualboot_fuze.c dualboot_fuze.h all: mkamsboot # Dualboot bootloaders dualboot_clip.arm-o: dualboot.S arm-elf-gcc -DSANSA_CLIP -c -o dualboot_clip.arm-o dualboot.S dualboot_fuze.arm-o: dualboot.S arm-elf-gcc -DSANSA_FUZE -c -o dualboot_fuze.arm-o dualboot.S dualboot_e200v2.arm-o: dualboot.S arm-elf-gcc -DSANSA_E200V2 -c -o dualboot_e200v2.arm-o dualboot.S dualboot_m200v4.arm-o: dualboot.S arm-elf-gcc -DSANSA_M200V4 -c -o dualboot_m200v4.arm-o dualboot.S dualboot_c200v2.arm-o: dualboot.S arm-elf-gcc -DSANSA_C200V2 -c -o dualboot_c200v2.arm-o dualboot.S # Rules for the ucl unpack function nrv2e_d8.arm-o: nrv2e_d8.S arm-elf-gcc -DPURE_THUMB -c -o nrv2e_d8.arm-o nrv2e_d8.S $(LIBUCL): make -C ../../tools/ucl/src libucl.a md5.o: md5.c md5.h $(CC) $(CFLAGS) -c -o md5.o -W -Wall md5.c mkamsboot.o: mkamsboot.c $(BOOTHEADERS) nrv2e_d8.h md5.h $(CC) $(CFLAGS) -c -o mkamsboot.o -W -Wall mkamsboot.c mkamsboot: mkamsboot.o $(BOOTIMAGES) nrv2e_d8.o md5.o $(LIBUCL) $(CC) -o mkamsboot mkamsboot.o $(BOOTIMAGES) nrv2e_d8.o md5.o $(LIBUCL) # Rules for the ARM code embedded in mkamsboot - assemble, link, then extract # the binary code and finally convert to .c/.h for linking with mkamsboot %.arm-elf: %.arm-o arm-elf-ld -e 0 -Ttext=0 -o $@ $< %.arm-bin: %.arm-elf arm-elf-objcopy -O binary $< $@ %.c %.h: %.arm-bin bin2c ./bin2c $< $* # Generic host rule. %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< # Cancel the implicit .S -> .o rule %.o: %.S bin2c: bin2c.c $(CC) -o bin2c bin2c.c clean: rm -f mkamsboot mkamsboot.o nrv2e_d8.arm-o nrv2e_d8.arm-elf \ nrv2e_d8.arm-bin *~ bin2c nrv2e_d8.c nrv2e_d8.h nrv2e_d8.o md5.o \ $(BOOTIMAGES) $(CLIPFILES) $(E200V2FILES) $(M200V4FILES) $(FUZEFILES) \ $(C200V2FILES)