Hallo,

es stimmt eine ganze Menge nicht:

1)
Es wird keine C-Quelldatei uebersetzt, in der die main() Funktion
enthalten ist bzw. das erzeugte Objektfile wird beim linken nicht
beachtet (crtm32.o(.init9+0x0): undefined reference to `main')
Die Datei crtm32.o initialisiert vordefinierte Variablen und springt
anschliessend main() an. Bei dir fehlt aber main().

2)
Der Linker hat keinen Pfad zur AVR-LIBC mit den I²C-Funktionen
(undefined reference to `i2c_xxx'). Da gibt es eine weitere Option
fuer Linker, mit der er angewiesen wird die STDLIB zu verwenden.
-> Poste mal dein Makefile.

Prinzipiell werden deine C-Dateien richtig übersetzt. Es knirscht im
2. Schritt, dem Linken. Hier werden die einzelnen Objektdateien der
jeweiligen C-Quelldateien zu einer Datei zusammengebunden. Das
Ergebnis des Linkers kann dann vom AVR ausgeführt werden.

Grüße
Markus