Skript file: /~heha/Mikrocontroller/RpiI2cClockStretcher/i2c.zip/Makefile

# Makefile für ATmega32U4-Firmware auf Pro Micro für I²C
# für Raspberry: I²C-Master mit funktionierendem Clock-Stretch
# (Richtiger wäre hier ein Pro Micro mit 3,3 V und 8 MHz, ist aber gerade nicht greifbar.)
# Zuständig: Felix Pfeiffer
# Henrik Haftmann, 230605
P = i2c
D = atmega32u4
F = 16000000

PATH := c:\programme\winavr\gcc530\bin;$(PATH)

# Compiler und Linker:
C = avr-gcc -Wall -Wno-parentheses -Wno-array-bounds -Os -mmcu=$D -std=c++14 -D F_CPU=$F
# -D DEBUG
#no-parentheses: Ich weiß selbst wo Klammern nötig sind
#no-array-bounds: Flash-Stringadressen nicht im Flash (0..7FFF)
#no-char-subscripts: Bytes als Array-Indizes sind okay für kleine Arrays

all: $P.lst

# Alle C++-Dateien sind (der Einfachheit halber) von allen Kopfdateien abhängig
$P.elf: *.cpp *.h Makefile
	$C -o $@ $(filter %.cpp,$^)
# Das alte avr-size aufheben! Das neue kann kein -C
#	avr-size -C --mcu=$D $@
	avr-size $@

$P.hex: $P.elf
	avr-objcopy -j .text -j .data -O ihex $< $@

$P.lst: $P.elf
	avr-objdump -d $< > $@
	avr-strip $<

# „ubaboot“ (½ KByte)
# Geht erst mal nicht
flash: $P.elf
	uba $<

# Atmel-Urlader (4 KByte)
# Geht erst mal nicht
#flash: $P.hex
#	dfu-programmer $D erase --force --suppress-validation
#	dfu-programmer $D flash --force --suppress-validation $<
#	dfu-programmer $D launch

# Arduino-Urlader (2 KByte), lahm, kein EEPROM
Detected encoding: UTF-80