From d237184f11ebdf3147e03bd297f16797a8e990ca Mon Sep 17 00:00:00 2001 From: schodet Date: Sun, 26 Jun 2005 23:31:42 +0000 Subject: Ajout du Makefile pour les modules AVR. --- n/avr/make/Makefile.avr | 92 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 n/avr/make/Makefile.avr (limited to 'n/avr/make/Makefile.avr') diff --git a/n/avr/make/Makefile.avr b/n/avr/make/Makefile.avr new file mode 100644 index 0000000..ace4331 --- /dev/null +++ b/n/avr/make/Makefile.avr @@ -0,0 +1,92 @@ +# Makefile.avr - AVR part Makefile. +# +# Flags. {{{1 + +AVR_CFLAGS = $(CFLAGS) -mmcu=$(AVR_MCU) +AVR_CPPFLAGS = $(CPPFLAGS) $(AVR_DEFS) +AVR_LDFLAGS = $(LDFLAGS) + +AVR_CC = avr-gcc +AVR_OBJCOPY = avr-objcopy +AVR_OBJDUMP = avr-objdump +AVR_COMPILE.c = $(AVR_CC) $(AVR_CFLAGS) $(AVR_CPPFLAGS) -c +AVR_LINK.o = $(AVR_CC) $(AVR_CFLAGS) $(AVR_LDFLAGS) + +# Main rules. {{{1 + +avr: elf lst hex + echo $(AVR_SOURCES) + +.PHONY: avr clean.avr elf lst text hex srec bin eeprom ehex esrec ebin + +# General rules. {{{1 + +AVR_ELFS = $(PROGS:%=%.avr.elf) +AVR_SOURCES = $(filter-out %.host.c,$(SOURCES)) +AVR_OBJECTS = $(AVR_SOURCES:%.c=%.avr.o) + +elf: $(AVR_ELFS) +lst: $(PROGS:%=%.avr.lst) + +define AVR_PROG_template +$(1).avr.elf: $$(patsubst %.c,%.avr.o,$$(filter-out %.host.c,$$($(1)_SOURCES))) +endef + +$(foreach prog,$(PROGS),$(eval $(call AVR_PROG_template,$(prog)))) + +$(AVR_ELFS): + $(AVR_LINK.o) $^ $(AVR_LDLIBS) -o $@ + +%.avr.lst: %.avr.elf + $(AVR_OBJDUMP) -h -S $< > $@ + +%.avr.o: %.c + $(AVR_COMPILE.c) -o $@ $^ + +# Dependency checking. +-include $(AVR_OBJECTS:%.avr.o=%.avr.d) + +# Rules for building the .text rom images. {{{1 + +TEXTS = $(PROGS:%=%.hex) $(PROGS:%=%.bin) $(PROGS:%=%.srec) + +text: hex + +hex: $(PROGS:%=%.hex) +bin: $(PROGS:%=%.bin) +srec: $(PROGS:%=%.srec) + +%.hex: %.avr.elf + $(AVR_OBJCOPY) -j .text -j .data -O ihex $< $@ + +%.srec: %.avr.elf + $(AVR_OBJCOPY) -j .text -j .data -O srec $< $@ + +%.bin: %.avr.elf + $(AVR_OBJCOPY) -j .text -j .data -O binary $< $@ + +# Rules for building the .eeprom rom images. {{{1 + +EEPROMS = $(PROGS:%=%_eeprom.hex) $(PROGS:%=%_eeprom.bin) \ + $(PROGS:%=%_eeprom.srec) + +eeprom: ehex + +ehex: $(PROGS:%=%_eeprom.hex) +ebin: $(PROGS:%=%_eeprom.bin) +esrec: $(PROGS:%=%_eeprom.srec) + +%_eeprom.hex: %.avr.elf + $(AVR_OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ + +%_eeprom.srec: %.avr.elf + $(AVR_OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ + +%_eeprom.bin: %.avr.elf + $(AVR_OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ + +# Cleaning. {{{1 + +clean.avr: + rm -f *.avr.o *.avr.d $(AVR_ELFS) *.avr.lst *.avr.map $(TEXTS) $(EEPROMS) + -- cgit v1.2.3