# Proměnná se jménem dokumentu, které pak můžeme používat ve zbytku Makefile # zadáním „${NAME}“. NAME=dokument # Hodnoty proměnných se dají snadno přepisovat při spuštění Makefile bez zásahu # přímo do Makefile tak, že make z příkazového řádku voláme ve tvaru: make # NAME= # Používej interpret příkazů BASH. (Užitečné zejména na Ubuntu, kde je výchozí # shell pro make DASH, který není s BASH plně kompatibilní. Některé konstrukce # pak „záhadně nefungují“, protože si uživatel obvykle neuvědomí, že make # používá jiný shell než uživatel interaktivně v terminálu.) SHELL=/bin/bash # V .PHONY uvádíme „falešné“ cíle, tzn. naše symbolická jména pro cíle, které # nevytváří stejně pojmenované soubory. .PHONY: all dvi pdf ps clean all: dvi pdf ps dvi: ${NAME}.dvi pdf: ${NAME}.pdf ps: ${NAME}.ps clean: # Znak „@“ před příkazem zajistí, že make nebude vypisovat text # spouštěného příkazu, což je např. zde nežádoucí, neboť ve výpisu # překladu chceme vidět jen naši formátovanou zprávu. @echo -e "\n\n### Uklid ###\n\n" # Znak „-“ před příkazem zajistí, že případné selhání příkazu (např. # zde „rm ...“ selže, pokud některý ze zadaných souborů již neexistuje) # nezpůsobí zastavení provádění zbytku Makefile (např. zde nám nevadí, # že se nepodařilo smazat soubory, které stejně neexistují). -rm ${NAME}.{aux,dvi,log,pdf,ps} # Vysázej LaTeXový dokument ve formátu DVI. ${NAME}.dvi: ${NAME}.tex @echo -e "\n\n### DVI ###\n\n" latex ${NAME}.tex # Vysázej LaTeXový dokument ve formátu PDF. ${NAME}.pdf: ${NAME}.tex @echo -e "\n\n### PDF ###\n\n" pdflatex ${NAME}.tex # Vysázej LaTeXový dokument ve formátu PostScript. # Diky zadání závislosti na „${NAME}.pdf“ make automaticky vyrobí soubor # „${NAME}.pdf“ předtím než vyrobí soubor „${NAME}.ps“. ${NAME}.ps: ${NAME}.pdf @echo -e "\n\n### PS ###\n\n" pdftops ${NAME}.pdf