@Roboaktiv: bezüglich Makefile findest Du hier den Versuch einer guten Zusammenstellung (nicht anfängerfreundlich genug gelungen): http://www.mikrocontroller.net/artic...urs:_Makefiles

Ein Makefile ist nur eine Sammlung von "Steueranweisungen" für Compiler, Assembler, Linker/Locator und avr-objcopy. Du musst Dir den Gesamtprozess der Erstellens eines Maschinenprogramms mal ganz genau und in Ruhe anschauen. Hier ist die richtige Stelle für Dich:
https://www.roboternetz.de/wissen/in...:Avr-gcc-1.png (davon solltest Du jeden(!) Schritt verstehen, lass vorher nicht locker! )
https://www.roboternetz.de/wissen/in...odegenerierung
Verfolge genau den Weg von C/C++ (Sourcecode=Quellcode) bis hin zum Programm im Flash-Speicher (ist übrigens auch EEPROM):
C/C++ -> Assembler -> Objektcode -> elf-Datei (ELF=Executable and Linking Format) -> hex-Datei -> Programm im Flash-Speicher des AVR.

C/C++ -> Assembler (Compiler: C:\WinAVR\bin\avr-gcc.exe bzw. C:\WinAVR\bin\avr-g++.exe)
Assembler -> Objektcode (Assembler: C:\WinAVR\bin\avr-as.exe)
Objektcode -> elf-Datei (Linker/Locator: C:\WinAVR\bin\ld.exe)
elf-Datei -> hex-Datei (C:\WinAVR\bin\avr-objcopy.exe)
hex-Datei "flashen" (Verschiedene Programmiersoftware, z.B. C:\WinAVR\bin\avrdude)

siehe auch: https://roboternetz.de/wissen/index.php/Hallo_Welt_f%C3%BCr_AVR_(LED_blinken)
http://de.wikipedia.org/wiki/Executa...Linking_Format
http://de.wikipedia.org/wiki/Compiler
http://de.wikipedia.org/wiki/Assembler_%28Informatik%29
http://de.wikipedia.org/wiki/Linker

Zu den Programmiersprachen:
Das Futter für den Compiler ist der Sourcecode. Hier gibt es im AVR-Bereich vor allem C und C++.
Java läuft auf einer Java VM (Virtual Machine).

Noch Unklarheiten?