From 0c19b9edaa65f71f79a651302379fde883b76602 Mon Sep 17 00:00:00 2001 From: schodet Date: Tue, 6 Jul 2004 21:09:13 +0000 Subject: Ajout du support des modules. --- n/avr/rs232/Makefile | 77 ++----------------------------------- n/avr/rs232/Makefile.avr | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 73 deletions(-) create mode 100644 n/avr/rs232/Makefile.avr diff --git a/n/avr/rs232/Makefile b/n/avr/rs232/Makefile index 1c08c0b..a44cfdf 100644 --- a/n/avr/rs232/Makefile +++ b/n/avr/rs232/Makefile @@ -1,7 +1,8 @@ -PRG = test_rs232 -OBJECTS = test_rs232.o rs232.o +PROGS = test_rs232 +SOURCES = test_rs232.c rs232.c DOC = rs232.html EXTRACTDOC = rs232.c avrconfig.h +MODULES = # atmega8, atmega8535, atmega128... MCU_TARGET = atmega8 # -O2 : speed @@ -11,74 +12,4 @@ OPTIMIZE = -O2 DEFS = LIBS = -# You should not have to change anything below here. - -CC = avr-gcc - -CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -CPPFLAGS = $(DEFS) -LDFLAGS = -Wl,-Map,$(PRG).map - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: elf lst hex - -elf: $(PRG).elf -lst: $(PRG).lst - -$(PRG).elf: $(OBJECTS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -clean: - rm -f *.o $(PRG).elf *.bak $(DOC) *.exd - rm -f *.lst *.map $(EXTRA_CLEAN_FILES) - rm -f $(PRG).hex $(PRG).bin $(PRG).srec $(PRG)_eeprom.hex $(PRG)_eeprom.bin $(PRG)_eeprom.srec - -# Rules for building the doc. - -doc: $(DOC) - -%.html: %.txt %.exd - aft $< - -%.exd: $(EXTRACTDOC) - test -n "$^" && extractdoc $^ > $@ || true - -# Rules for building the .text rom images. - -text: hex bin srec - -hex: $(PRG).hex -bin: $(PRG).bin -srec: $(PRG).srec - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - -# Rules for building the .eeprom rom images. - -eeprom: ehex ebin esrec - -ehex: $(PRG)_eeprom.hex -ebin: $(PRG)_eeprom.bin -esrec: $(PRG)_eeprom.srec - -%_eeprom.hex: %.elf - $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ - -%_eeprom.srec: %.elf - $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ - -%_eeprom.bin: %.elf - $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ - +include Makefile.avr diff --git a/n/avr/rs232/Makefile.avr b/n/avr/rs232/Makefile.avr new file mode 100644 index 0000000..1bcf944 --- /dev/null +++ b/n/avr/rs232/Makefile.avr @@ -0,0 +1,99 @@ +# Flags. {{{1 + +CC = avr-gcc + +CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) +CPPFLAGS = $(DEFS) +LDFLAGS = + +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump + +# Main rules. {{{1 + +CSOURCES = $(filter %.c, $(SOURCES)) +SSOURCES = $(filter %.s, $(SOURCES)) +OBJECTS = $(CSOURCES:%.c=%.o) $(SSOURCES:%.s=%.o) +ELFS = $(PROGS:%=%.elf) + +all: elf lst hex + +.PHONY: all clean elf lst doc text hex srec bin eeprom ehex esrec ebin + +elf: $(PROGS:%=%.elf) +lst: $(PROGS:%=%.lst) + +$(PROGS:%=%.elf): $(OBJECTS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) + +%.lst: %.elf + $(OBJDUMP) -h -S $< > $@ + +clean: + rm -f *.o $(PROGS:%=%.elf) *.lst *.map *.bak *~ $(DOC) *.exd + rm -f $(EXTRA_CLEAN_FILES) $(TEXTS) $(EEPROMS) + +# Rules for building the doc. {{{1 + +doc: $(DOC) + +%.html: %.txt %.exd + aft $< + +%.exd: $(EXTRACTDOC) + test -n "$^" && extractdoc $^ > $@ || true + +# Rules for modules. {{{1 + +MODULESFILES = $(MODULES:%=modules/%/Module) + +Makefile: $(MODULESFILES) + +MODULESOURCES = $(addprefix $(module)/,$(shell cat modules/$(module)/Module)) +MODULESSOURCES := $(if $(MODULES),\ + $(foreach module,$(MODULES),$(MODULESOURCES))) + +$(MODULESFILES): + mkdir -p modules + cd modules && cvs co $(@:modules/%/Module=%) + test -f $@ + +# Rules for building the .text rom images. {{{1 + +TEXTS = $(PROGS:%=%.hex) $(PROGS:%=%.bin) $(PROGS:%=%.srec) + +text: hex bin srec + +hex: $(PROGS:%=%.hex) +bin: $(PROGS:%=%.bin) +srec: $(PROGS:%=%.srec) + +%.hex: %.elf + $(OBJCOPY) -j .text -j .data -O ihex $< $@ + +%.srec: %.elf + $(OBJCOPY) -j .text -j .data -O srec $< $@ + +%.bin: %.elf + $(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 ebin esrec + +ehex: $(PROGS:%=%_eeprom.hex) +ebin: $(PROGS:%=%_eeprom.bin) +esrec: $(PROGS:%=%_eeprom.srec) + +%_eeprom.hex: %.elf + $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ + +%_eeprom.srec: %.elf + $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ + +%_eeprom.bin: %.elf + $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ + -- cgit v1.2.3