6. Make

Make #

Osnova cvičení #

  • vytvoření jednoduchého Makefile
  • vytvoření komplexního Makefile

Úkoly #

  1. Stáhněte si projekt 06-make.zip, který obsahuje archiv s adresářem example a podadresář utils a program test_factorial.c.

  2. Vytvořte v adresáři example soubor Makefile, který:

  • zkompiluje program test_example z modulů test_factorial.o a utils/math_utils.o
  • použijte překladač gcc s přepínači -Wall
  • přeloží v adresáři utils modul math_utils.c na math_utils.o
  • přeloží v aktuálním adresáři test_factorial.c na test_factorial.o
  • Makefile může použít implicitní pravidla
  1. Rozšiřte Makefile o cíl clean. Nastavte správně pravidlo .PHONY.

  2. Rozšiřte Makefile o cíl run, který program test_factorial spustí.

  3. Otestujte Makefile, zda zareaguje na změnu souboru utils/math_utils.h?

  • Upravte Makefile ručně, aby reagoval na změnu souboru utils/math_utils.h.
  • Upravte Makefile tak, aby automaticky reagoval na změnu souboru utils/math_utils.h. Použijte přepínače -MMD -MP k vytvoření souborů .d a jejich vložení do Makefile. Pro detekci zdrojových souborů použijte wildcard na aktuální adresář a podadresář utils.
  • Otestujte správnost implementace.
  1. Rozšiřte Makefile o cíl archiv, který vytvoří archiv ze souboru Makefile, zdrojových souborů a pojmenuje ho uloha_make.tgz.

  2. Rozšiřte Makefile o cíl install, který provede:

  • zkopíruje program test_factorial do adresáře ~/.local/bin, pokud adresář neexistuje, tak ho vytvoří
  • pokud proměnná PATH neobsahuje .local/bin, pak ho přidá do proměnné PATH. Po provedení cíle install by mělo být možné spustit program test_factorial z libovolného adresáře.

Užitečné odkazy #