User Manual
76
4.5. Makefile
Nástroj “Make“ zjednodušuje proces kompilace automatickým zpracováním velkého počtu
činností, nutných pro kompilaci programů v jazyce C. Automatizované zpracování je definováno
v takzvaném “Makefile“, který obsahuje všechny nezbytné posloupnosti příkazů a informace pro
zpracování kompilace projektu. Tyto makefile poskytujeme pro všechny ukázkové projekty RP6,
ale samozřejmě můžete vytvořit libovolné makefile pro vlastní projekty. Nebudeme podrobně
probírat strukturu souborů makefile, můžete to nastudovat v příslušné příručce. U všech
projektů RP6 se můžete soustředit na následující čtyři přístupy. Další aspekty nejsou pro
začátečníky důležité a můžete je ignorovat.
TARGET = programName
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
Naše makefile obsahují mezi příkazovými řádky komentáře. Komentáře v makefile začínají “#” a
budou během zpracování ignorovány.
Ukázkové projekty RP6 poskytují přizpůsobené makefile připravené pro použití a nebudete je
muset měnit, dokud neplánujete vkládání nových zdrojových souborů jazyka C do struktury
projektu nebo začnete měnit názvy souborů.
Tvorba makefile začíná specifikací názvu souboru programu, který obsahuje hlavní funkci
v řádku “TARGET”. Název musíte specifikovat bez přípony, nikdy sem prosím nepřidávejte
příponu “.c”! Řadu dalších přípon budete muset bohužel specifikovat a nejlepší bude
prostudovat detaily komentářů u existujících příkladů makefile!
Druhý vstup “RP6_LIB_PATH” umožňuje specifikovat cestu ke knihovním souborům
RP6Library. Definujte, prosím úplnou cestu tj. například “../RP6lib” or “../../RP6lib” (in which “../”
to znamená “o jednu adresářovou úroveň výš”).
Třetí vstup RP6_LIB_PATH_OTHERS se používá ke specifikaci všech dalších adresářů.
Knihovna RP6Library je rozdělena do řady dílčích adresářů a ve svém projektu musíte definovat
cesty ke všem potřebným adresářům.
Na závěr definujete všechny zdrojové soubory jazyka C ve vstupu “SRC” (nevkládejte žádné
hlavičkové soubory s příponou “.h”, které se automaticky vyhledají ve všech specifikovaných
adresářích!), které se používají pod souborem s hlavní funkcí. Dále musíte specifikovat všechny
použité knihovní soubory RP6Library.
Co znamená výraz $(RP6_LIB_PATH)? Dobrá, je to způsob jak používat proměnné v
makefiles! Již jsme definovali “proměnnou” s názvem RP6_LIB_PATH. Jakmile je proměnná
deklarována, může se úspěšně použít obsah proměnné pomocí zápisu $(<proměnná>) v textu
makefile. Tato užitečná vlastnost výrazně zmírní složitost zápisu makefile...
Obvykle nemusíte v RP6 makefile nic měnit. Když se chcete podívat na další informace o této
problematice můžete prostudovat příručku:
http://www.gnu.org/software/make/manual/