Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente
Codici prodotto
RP6 V2
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
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-
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
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
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-
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
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
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.
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
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-
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-
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
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
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.
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/
http://www.gnu.org/software/make/manual/
- 79 -