X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=betty%2FMakefile;h=b7a261611f1e6ddebb2df61db62871b8e52339a1;hb=94909b5b893d5c60bc44bbafec8de1b3c86d9595;hp=d9f49e7ed4b0fbee28b1eaa5e40ed032cee51aec;hpb=af2e2299a2e4f4aca56de844f0c5011435672b92;p=my-code%2Farm.git diff --git a/betty/Makefile b/betty/Makefile index d9f49e7..b7a2616 100644 --- a/betty/Makefile +++ b/betty/Makefile @@ -1,29 +1,58 @@ +# native builds CC = gcc CFLAGS = -Wall -ARMCC = /scratch/arm-elf/bin/arm-elf-gcc -ARMCFLAGS = -Wall -mcpu=arm7tdmi-s -ARMOBJCOPY = /scratch/arm-elf/bin/arm-elf-objcopy - -HOSTOBJECTS = lpcload fwdump - -ARMOBJECTS = fwbc.hex +# 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 + +# betty deps +BETTY_DEPS = system.o uart.o buttons.o spi.o display.o flash.o pffs.o # all projects -all: $(HOSTOBJECTS) $(ARMOBJECTS) +all: $(HOST_TARGET) $(CROSS_TARGET) # arm code -arm: arm_clean $(ARMOBJECTS) +arm: arm_clean $(CROSS_TARGET) + +# .o out of .c +%.o: %.c + $(CROSS_CC) -c $(CROSS_CFLAGS) -o $@ $< -# fwbc -fwbc: - $(ARMCC) $(ARMCFLAGS) -c fwbc.c -o fwbc +# .o out of .s +%.o: %.s + $(CROSS_AS) $(CROSS_ASLAGS) -o $@ $< -fwbc.hex: fwbc - $(ARMOBJCOPY) -O ihex fwbc fwbc.hex +# .elf out of .o +%.elf: %.o startup.o + $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.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 -f lpcload fwbc.hex fwbc + rm -vf lpcload fwdump +# arm clean arm_clean: - rm -f fwbc.hex fwbc + rm -vf *.o *.hex *.elf +