Naja, wenn Du Microcontroller programmieren können willst,
solltest Du IMNSHO eigentlich in der Lage sein, das simple
demo.c der avr-libc auch für einen ATmega128 anzupassen. Außer
ein paar Namen, die beim m128 anders sind als bei den kleineren
Controllern, ist da wohl nicht viel zu ändern... Ganz ehrlich,
wenn Du das nichtmal schaffst, wie bekommst Du dann ein eigenes
Projekt auf die Füße? Hier scheiterst Du ja nicht an WinAVR
oder GCC-Eigenheiten, sondern am simplen Verständnis für die
AVR-Controller selbst.
Außerdem, hast Du denn die Doku zu diesem Beispiel wenigstens
mal gelesen? Eigentlich ist da alles haarklein auseinandergenommen...
Was Du natürlich unbedingt haben solltest, ist eine ausgedruckte
(liest sich einfacher nach) und eine Online-Version (es sucht
sich einfacher darin und Du hast Querverweise im PDF) des
Atmel-Datenblattes für den ATmega128. Alle Namen von IO-Registern
in <avr/io.h> sind so, wie sie das Datenblatt beschreibt.
Ein Makefile an sich ist dabei, das führt bis zum iHex File.
avrdude gab's noch nicht, als wir das Demo integriert haben,
sonst wäre wohl auch mein ursprüngliches "make program"
dringeblieben. Ein allgemeines Beispiel-Makefile mit der
Einbindung von avrdude liegt WinAVR allerdings auch bei, Du
mußt nur noch die Namen Deiner eigenen Quelldatei(en) eintragen.
Caveat emptor: die LDFLAGS in Erics Beispiel binden die
Gleitkommaversion von printf() mit ein, damit ist selbst
das simpelste Progrämmchen einige Kilobyte groß. Auf einem
m128 stört das zwar nicht weiter, aber Du brauchst es natürlich
auch nicht, als kannst Du vor alle LDFLAGS-Zeilen getrost
ein # schreiben.