Willi, geh dem Hinweis von Andreas nach. In AVR Studio ist es wesentlich
bequemer mit dessen Projektverwaltung und interner Makestruktur zu
arbeiten statt mit externem Makefile.
Wenn du trotzdem mit externem Makefile arbeiten musst: Die Dateien in
AVR Studio unter Source Files sind dem externen Makefile volkommen egal.
Nur was im Makefile angegeben ist zählt.
Bei der Ergänzung des (seltsamen) Makefile kannst du dir ein Beispiel an
der Source uart.c nehmen. Dazu sind Ergänzungen nötig:
1 | ## Objects that must be built in order to link
|
2 | OBJECTS = hoello_V_0_1.o uart.o
|
Hier wird definiert, dass eine Objektdatei uart.o erstellt werden muss.
1 | uart.o: ../../../Module/Uart/uart.c
|
2 | $(CC) $(INCLUDES) $(CFLAGS) -c $<
|
Hier wird definiert wovon die Objektdatei abhängig ist (uart.c) und wie
die Objektdatei uart.o erstellt werden kann.
Die Besonderheit ist, dass die Source nicht im aktuellen Verzeichnis
liegt. Daher auch die dritte Ergänzung, damit sowas wie #include
"uart.h" innerhalb uart.c oder main.c funktioniert:
1 | ## Include Directories
|
2 | INCLUDES = -I"D:\programmieren\Hoelli\V_0_1\..\..\Module\Uart"
|
Hier wird der Suchpfad für die uart-spezifischen Includedateien ergänzt.
Angenommen du hast zusätzlich eine Source angie.c, dann sieht das so im
Makefile aus:
1 | ## Objects that must be built in order to link
|
2 | OBJECTS = hoello_V_0_1.o uart.o angie.o
|
3 |
|
4 | angie.o: angie.c
|
5 | $(CC) $(INCLUDES) $(CFLAGS) -c $<
|
Wichtig: Bei der Bearbeitung des Makefiles im Editor müssen Tabulatoren
erhalten bleiben. Die leiten die Zeilen mit den Makekommandos ein, z.B.
1 | $(CC) $(INCLUDES) $(CFLAGS) -c $<
|
Zu dem "seltsamen" Makefile: Üblich sind eher Makefiles nach dem
Beispiel Makefile