X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=betty%2FMakefile;h=0af33acaa0f98a8e698c9ee1cd58dc35c8dc8854;hb=2cbc6d2f18a38237fcd1df2ef67ba315af080f03;hp=3bff9d0fac27c4153287ecf07f1da2fdb27fead9;hpb=06e719791011a2c8eb472943492b7b0b6d445c6f;p=my-code%2Farm.git diff --git a/betty/Makefile b/betty/Makefile index 3bff9d0..0af33ac 100644 --- a/betty/Makefile +++ b/betty/Makefile @@ -1,5 +1,54 @@ +# native builds CC = gcc CFLAGS = -Wall -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 +CROSS_TARGET = fwbc.hex fwflash.hex betty.hex + +# all projects +all: $(HOST_TARGET) $(CROSS_TARGET) + +# 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 + $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o -o $@ $< + +# special linker case ... +betty.elf: betty.o startup.o + $(CROSS_LD) $(CROSS_ROM_LDFLAGS) startup.o -o $@ $< + +# .hex out of .elf +%.hex: %.elf + $(CROSS_OBJCOPY) -O ihex $< $@ + +# host clean +clean: + rm -f lpcload fwdump + +# arm clean +arm_clean: + rm -vf *.o *.hex *.elf