Skript file: /~heha/mb-iwp/Inkrementalgeber/IAI/Inkr.zip/fw/Makefile

# Makefile für Inkrementalgeber-Adapter IAI auf BiSS/EnDat (oder umgekehrt) mit ATtiny2313
# Der einzige kleine Mikrocontroller, der (ohne Übtertakten) 2,5 MBaud kann
P = iai
O = main.o
D = attiny2313
F = 20000000

# Compilerschalter
CFLAGS = -DF_CPU=$F -Os -ffunction-sections -Wall -Wno-parentheses

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

CC = avr-gcc -mmcu=$D
OHEX = avr-objcopy -O ihex
DUMP = avr-objdump -d
SIZE = avr-size --mcu=$D
A = avrdude -c pony-stk200 -P lpt1 -p $D -E noreset

all: $P.elf $P.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: $(O)
	$(CC)  $(LDFLAGS) $^ -o $@
	$(SIZE) $@

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

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

# Chip-Programmierung
ifdef A
program: $P.hex
	$A -U efuse:w:0xFF:m -U hfuse:w:0xD9:m -U lfuse:w:0xFF:m -U flash:w:$P.hex:i

flash: $P.hex
	$A -U flash:w:$<:i
else
program:
	avrpp -ff $P.elf

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

# Liste der unechten Ziele
.PHONY : all clean program flash

.PRECIOUS : $O $P.elf
Detected encoding: UTF-80