Skript file: /~heha/basteln/Haus/Telefon/Mithören-ISDN/Firmware.zip/ATmega32U4/Makefile

# Makefile für ISDN-Sniffer mit Pro Micro mit ATmega32U4
# Vorteil: USB sowie gute 11-Bit-Tonausgabe ohne hörbare Trägerfrequenz, preiswerte Platine
# Nachteil: Platz- und Ressourcenverschwendung
PROJECT = isdnu4
# Objektdateien unbedingt in dieser Reihenfolge!
OBJECTS=s0isr.o main.o usb.o 
DEVICE = atmega32u4
F_CPU = 16000000

# Compilerschalter
CFLAGS = -DF_CPU=$(F_CPU) -Os -ffunction-sections -Wall -Wno-parentheses

# Linkerschalter
LDFLAGS = -Wl,--relax -Wl,--gc-sections

CC = avr-gcc -mmcu=$(DEVICE)
OHEX = avr-objcopy -O ihex
DUMP = avr-objdump -d
SIZE = avr-size --mcu=$(DEVICE)

all: $(PROJECT).hex $(PROJECT).lst

# Compile+link: „Ausführbare“ Datei generieren
%.o: %.S Makefile
	$(CC) $(CFLAGS) -c $< -o $@ 

%.o: %.cpp Makefile
	$(CC) $(CFLAGS) -c $< -o $@ 

%.o: %.c Makefile
	$(CC) $(CFLAGS) -c $< -o $@ 

%.elf: $(OBJECTS)
	$(CC)  $(LDFLAGS) $^ -o $@
	$(SIZE) $@

# Datei(en) für das Programmierprogramm erzeugen
%.hex: %.elf
	$(OHEX) -j .text -j .data $< $@

# Listing-Datei generieren
%.lst: %.elf
	$(DUMP) $< > $@

# Chip-Programmierung (via USB mit Atmel-Urlader im Chip)
flash: $(PROJECT).hex
	dfu-programmer $(DEVICE) erase --force --suppress-validation
	dfu-programmer $(DEVICE) flash --force --suppress-validation $<
	dfu-programmer $(DEVICE) launch

# Projektverzeichnis aufräumen aber .hex-Datei behalten
clean:
	$(RM) $(OBJECTS) $(PROJECT).elf $(PROJECT).lst

# Liste der unechten Ziele
.PHONY : all elf hex eep lst clean flash
Detected encoding: UTF-80