Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente

Codici prodotto
RP6 V2
Pagina di 141
RP6 ROBOT SYSTEM -  4. Programmierung des RP6
4.5. Makefiles
Das Tool „Make“ nimmt uns eine ganze Menge Arbeit ab, denn normalerweise müsste 
man so einiges in die Kommandozeile eintippen um ein C Programm zu kompilieren. 
Make verarbeitet ein sog. „Makefile“, das alle Befehlssequenzen und Informationen 
enthält, die zum Kompilieren des jeweiligen Projekts notwendig sind. Diese Makefiles 
werden bei jedem der RP6 Beispielprojekte schon fertig mitgeliefert – man kann na-
türlich später auch eigene Makefiles erstellen. Wie so ein Makefile im Detail aufgebaut 
ist, kann hier nicht beschrieben werden – das wäre zu umfangreich. Sie brauchen sich 
aber für alle RP6 Projekte ohnehin nur um die folgenden vier Einträge Gedanken zu 
machen – der Rest ist für Einsteiger erstmal uninteressant:
TARGET = programmName
RP6_LIB_PATH=../../RP6lib
RP6_LIB_PATH_OTHERS=$(RP6_LIB_PATH)/RP6base $(RP6_LIB_PATH)/RP6common
SRC += $(RP6_LIB_PATH)/RP6base/RP6RobotBaseLib.c
SRC += $(RP6_LIB_PATH)/RP6common/RP6uart.c
SRC += $(RP6_LIB_PATH)/RP6common/RP6I2CslaveTWI.c
In unseren Makefiles sind dazwischen noch einige Kommentarzeilen mit Erläuterungen 
und Hinweisen zu finden. Kommentare fangen in Makefiles immer mit „#“ an und wer-
den von Make nicht weiter beachtet.
Die Beispielprojekte für den RP6 enthalten bereits fertige Makefiles mit den passenden 
Einträgen. Sie müssen diese also nur dann ändern, wenn Sie z.B. neue C Dateien zum 
Projekt hinzufügen wollen, oder Dateien umbenennen möchten.
Beim Eintrag „TARGET“ trägt man den Namen der C Datei ein, die die Main-Funktion 
enthält. Hier gibt man nur den Namen an, OHNE das „.c“ am Ende! Bei vielen anderen 
Einträgen muss diese Endung aber angegeben werden, also immer auf die gegebenen 
Beispiele und Hinweise in den Kommentaren achten!
Im Eintrag „RP6_LIB_PATH“ müssen Sie das Verzeichnis mit den Dateien der RP6Li-
brary   angeben.  Das   ist   i.d.R.   „../RP6lib“   oder  „../../RP6lib“   also  ein   relativer   Pfad. 
(„../“ bedeutet „eine Verzeichnisebene höher“) 
Bei RP6_LIB_PATH_OTHERS muss man alle sonstigen Verzeichnisse angeben die man 
verwendet hat. Die RP6Library ist in mehrere Verzeichnisse unterteilt, von denen man 
alle die man verwendet auch angeben muss. 
Und schließlich bei „SRC“ müssen Sie alle C-Dateien angeben (keine Header Dateien! 
Also nicht die Dateien die mit „.h“ enden! Die werden automatisch in allen angegebe-
nen Verzeichnissen gesucht!), die Sie neben der Datei mit der Main-Funktion verwen-
den wollen. Auch die Dateien aus der RP6Library müssen hier angegeben werden, so-
fern diese verwendet werden sollen. 
Was bedeutet eigentlich $(RP6_LIB_PATH) ? Ganz einfach: So kann man in Makefiles 
Variablen verweden! Wir haben ja schon eine „Variable“ RP6_LIB_PATH definiert. Den 
Inhalt kann man nun mit $(<Variable>) überall nach dieser Deklaration einfügen. Ist 
praktisch und erspart sehr viel Tipparbeit...
Mehr   brauchen   Sie   an   den   Makefiles   für   den   RP6   normalerweise   nicht   zu   ändern. 
Wenn Sie aber mehr wissen möchten, finden Sie hier ein ausführliches Handbuch:  
http://www.gnu.org/software/make/manual/ 
- 79 -