Skript file: /~heha/Mikrocontroller/Displays/max.zip/Makefile

# Makefile für LED-Display 32×8 mit 4x MAX7219
P = max
O = main.o
D = atmega32u4
F = 16000000

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

# Linkerschalter
LDFLAGS = 

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

all: $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 Programmierprogramm erzeugen
%.hex: %.elf
	$(OHEX) -j .text -j .data $< $@
#	-j .eeprom -j .fuse -j .signature
#	$(OHEX) -j .text -j .signature $< $@

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

# Chip-Programmierung
program:
	avrpp -8 -ff $P.hex

flash: $P.hex
#	avrpp -8 $<
#Der Arduino-Urlader erfordert Reset und man muss innerhalb weniger Sekunden das Programmieren starten
	avrdude -p $D -c avr109 -P //./com7 -U flash:w:$<

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

# Liste der unechten Ziele (keine Dateinamen)
.PHONY : all clean program flash

# Wenn nicht hier gelistet werden diese Zwischenziele bei Erfolg gelöscht
.PRECIOUS : $(OBJECTS) $P.elf
Detected encoding: UTF-80