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

# Makefile für ISDN-Sniffer mit AT90USB162 (32-Pin-SMD-Chip)
# Vorteil: Kleinstmöglicher Chip, kompatibel mit ATmega16U2, bei Reichelt
# Nachteil: Platine erforderlich, verminderte analoge Tonqualität, teuer
P = mv-17
D = at90usb162
F = 16000000
PATH := c:/Programme/WinAVR/gcc1010/bin;$(PATH)

C = avr-gcc -mmcu=$D -DF_CPU=$F -Os -ffunction-sections -Wall -Wno-parentheses
OHEX = avr-objcopy -O ihex

all: $P.hex $P.lst

# Compile+link: „Ausführbare“ Datei generieren
# aus C, C++, Assembler, Linkerskript, abhängig von Headerdateien und diesem Makefile
%.elf: *.cpp *.S *.h *.x Makefile
	$C -o $@ $(filter %.c %.cpp %.S,$^) -Wl,-T $(filter %.x,$^)
	avr-size $@

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

# Listing-Datei generieren
%.lst: %.elf
	avr-objdump -dt $< > $@
	avr-strip $<

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

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

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