Toto je starší verze dokumentu!


TODO: Makefile

Úvod do cvičení

Na dnešním cvičení budete mít za úkol seznámit se s pomocníkem zvaným make a jeho konfigurací Makefile. V úvodu si ukážeme, co přesně make je a k čemu slouží a dále se detailněji seznámíme s některými hlavními aspekty.

První úkol

Nejprve se seznámíte s formátem souboru.

Zadání úkolu

Napište několik pravidel do Makefile, která budou volat externí program echo, a tedy něco vypisovat. Postupně je vyvolávejte.

Po implementaci pravidel p1, p2 a p3, výstup může vypadat například takto:

$ make
p1 invoked
$ make p2
p2 invoked
$ make p3
p3 invoked

Druhý úkol

Pravidla máme, zkusme něco přeložit.

Zadání úkolu

Nastavte proměnné prostředí CC a CFLAGS a přeložte si krátký zdrojový soubor.

Jako zdrojový soubor použijte např.:
#include <stdio.h>

int main(void)
{
  puts("Hello!");
  return 0;
}

Třetí úkol

Po detailním prozkoumání syntaxe, zjišťujeme, že můžeme vytvářet závislosti mezi pravidly.

Zadání úkolu

Zřetězte vámi implementovaná pravidla, aby se spustila všechna ve vámi zvoleném pořadí.

Při závislostech p1 na p2 a p2 na p3, výstup může vypadat takto:

$ make
p3 invoked
p2 invoked
p1 invoked
Pravidla jsou tvaru:
target: dependency1 dependency2 ...
        command1
        ...

Čtvrtý úkol

Make umí vyhodnocovat příkazy a ukládat výsledek do proměnných.

Zadání úkolu

Vypište všechny .c soubory v adresáři a substituujte v názvech .c na .o.

Tip:
wildcard, patsubst a %

Pátý úkol

Zapomeňte na implicitní pravidla.

Zadání úkolu

Napište pravidlo pro překlad .c souborů do .o a následně slinkujte .o do binárky.

Vzorové řešení

Zatím není k dispozici.
QR Code
QR Code public:makefile (generated for current page)