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 echny nezbyt posloupnosti příkazů a informace pro
zpracování kompilace projektu. Tyto makefile poskytujeme pro echny ukázkové projekty RP6,
ale samozřejmě můžete vytvořit libovol makefile pro vlastní projekty. Nebudeme podrobně
probírat strukturu souborů makefile, můžete to nastudovat v přísluš příručce. U 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říkazomi řádky komenře. Komenře v makefile začínají # a
budou během zpracování ignorovány.
Ukázkové projekty RP6 poskytují přizpůsobe makefile připravené pro použi 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 zvy souborů.
Tvorba makefile začí 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řivejte
příponu .c! Řadu dalších přípon budete muset bohužel specifikovat a nejlepší bude
prostudovat detaily komenřů u existujících příkladů makefile!
Druhý vstup RP6_LIB_PATH umň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 adreřovou úroveň výš).
Třetí vstup RP6_LIB_PATH_OTHERS se používá ke specifikaci všech dalších adreřů.
Knihovna RP6Library je rozdělena do řady dílčích adreřů a ve svém projektu musíte definovat
cesty ke em potřebným adreřům.
Na závěr definujete echny zdrojové soubory jazyka C ve vstupu SRC (nevkládejte žádné
hlavičkové soubory s příponou .h, které se automaticky vyhledají ve ech specifikovaných
adreřích!), které se používají pod souborem s hlavní funkcí. Dále musíte specifikovat echny
použité knihovní soubory RP6Library.
Co znamená raz $(RP6_LIB_PATH)? Dobrá, je to způsob jak používat proměnné v
makefiles! Již jsme definovali proměnnou s 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č vlastnost razně zmírní složitost zápisu makefile...
Obvykle nemusíte v RP6 makefile nic měnit. Kd se chcete podívat na další informace o této
problematice můžete prostudovat příručku:
http://www.gnu.org/software/make/manual/