Skript file: /~heha/basteln/Haus/Telefon/Impulswahl→DTMF/mfv.zip/mfv3c/Makefile

# Makefile für das Projekt MFV-Wählscheibe
# Für avr-gcc; ich benutze WinAVR 2010
# Erstellen mit "make", programmieren mit avrpp mit "make program".
# Schaltung zum Einbau in alte Telefone,
# ermöglicht Tonwahl trotz Fingerlochscheibe
# + programmierbare Kurzwahl (22 Nummern à 20 Ziffern)
# + CLIP / Rückruf / akustische Anzeige der entgangenen Anrufe,
# + Autowahl, + Wählen bei aufgelegtem Telefonhörer.
# $P = Projektname: Apparateeinbau, nsi und nsa in Reihe
# $D = Mikrocontroller ATtiny45 oder ATtiny85
# $F = Resonatorfrequenz zwischen 3 und 12 MHz, ideal 4 MHz

P = mfv3c
D = attiny85
F = 4000000
# PATH := c:/Programme/WinAVR/gcc530/bin;$(PATH)
COMPILE = avr-gcc -Wall -Wno-parentheses -Os -mmcu=$D -DF_CPU=$F
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $D -E noreset

all: $P.elf $P.lst

$P.elf: $P.c clip.S Makefile
	$(COMPILE) -o $@ $(filter %.c %.cpp %.S,$^)
	@avr-size -C --mcu=$D $@

# Nur für avrdude oder externes Programmiergerät erforderlich:
# Je nach Programmiergerät dürfen EEPROM, Fuses und Signatur enthalten sein,
# das olle avrdude kommt nur mit .text + .data zurecht.
# Gesonderte Erstellung mit "make mfv3c.hex"
$P.hex: $P.elf
	avr-objcopy -j .text -j .data -O ihex $< $@
# -j .eeprom -j .fuse -j .signature

# Disassemblerlisting erzeugen und ELF-Datei zur Archivierung verkleinern
$P.lst: $P.elf
	avr-objdump -dt $< > $@
	avr-strip $<

# Make-Ziele, die keine Dateien sind
.PHONY: clean program fuse flash program-avrdude flash-avrdude
clean:
	-rm -rf *.elf *.lst

#avrpp ist meine Erweiterung von ElmChans Parallel-Programmer
#(bei identischer Hardware) und liest elf-Dateien
program: $P.elf
	avrpp -ff $<

# zum Aktualisieren der Firmware bei gleich bleibenden Fuses
flash: $P.elf
	avrpp $<

#avrdude kann mit dem o.a. „pony-stk“ nur einmal verwendet werden,
#wenn Bit 7 von HFUSE gelöscht ist = RSTDISBL (Reset Disable)
program-avrdude: $P.hex
	$(AVRDUDE) -U flash:w:$<:i -U lfuse:w:0x5C:m -U hfuse:w:0x57:m

# zum Aktualisieren der Firmware bei gleich bleibenden Fuses
# (unmöglich mit Low-Voltage-ISP)
flash-avrdude: $P.hex
	$(AVRDUDE) -U flash:w:$<:i
Detected encoding: UTF-80