X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2FMakefile;h=a76cf327378c3677204f345b1253169755fe6c6e;hp=3bff9d0fac27c4153287ecf07f1da2fdb27fead9;hb=9f1a71389dff6cddd11c4b9975a0d1b91806ee2d;hpb=06e719791011a2c8eb472943492b7b0b6d445c6f diff --git a/betty/Makefile b/betty/Makefile index 3bff9d0..a76cf32 100644 --- a/betty/Makefile +++ b/betty/Makefile @@ -1,5 +1,70 @@ +# native builds CC = gcc -CFLAGS = -Wall +CFLAGS = -Wall -I/usr/src/linux/include -all: lpcload +# cross build +ARCH = arm-elf +CROSS_CC = $(ARCH)-gcc +CROSS_AS = $(ARCH)-as +CROSS_LD = $(ARCH)-ld +CROSS_OBJCOPY = $(ARCH)-objcopy +CROSS_OPTS = -mcpu=arm7tdmi-s +CROSS_CFLAGS = $(CROSS_OPTS) -Wall -Os +CROSS_ASLAGS = $(CROSS_OPTS) --gstabs +CROSS_RAM_LDFLAGS = -Tlpc2220_ram.ld -nostartfiles -nostdlib +CROSS_ROM_LDFLAGS = -Tlpc2220_rom.ld -nostartfiles -nostdlib + +# build objects +HOST_TARGET = lpcload fwdump font2b +CROSS_TARGET = fwbc.hex fwflash.hex betty.hex + +# betty deps +BETTY_DEPS = system.o uart.o buttons.o spi.o display.o flash.o functions.o +BETTY_DEPS += interrupts.o pwm.o #pffs.o + +# all projects +all: $(HOST_TARGET) $(CROSS_TARGET) + +# bmp2b / font2b +links: + ln -sfv ../../api/bmp/bmp.{c,h} . + +bmp.c: links + +bmp.o: bmp.c + $(CC) -c $(CFLAGS) -o $@ $< + +bmp2b: bmp.o + +# arm code +arm: arm_clean $(CROSS_TARGET) + +# .o out of .c +%.o: %.c + $(CROSS_CC) -c $(CROSS_CFLAGS) -o $@ $< + +# .o out of .s +%.o: %.s + $(CROSS_AS) $(CROSS_ASLAGS) -o $@ $< + +# .elf out of .o +%.elf: %.o startup.o interrupts.o + $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o interrupts.o -o $@ $< + +# betty is special ;) +betty.elf: betty.o startup.o $(BETTY_DEPS) + #$(CROSS_LD) $(CROSS_ROM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $< + $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $< + +# .hex out of .elf +%.hex: %.elf + $(CROSS_OBJCOPY) -O ihex $< $@ + +# host clean +clean: + rm -vf lpcload fwdump + +# arm clean +arm_clean: + rm -vf *.o *.hex *.elf