Původně byl mfgen bash script, který sestavoval výsledný makefile. Nakonec jsem bash vynechal ze hry a vše dělá přímo make. Takže to nyní vypadá tak, že je to jeden univerzální makefile, kterému se na začátku doplní pár drobností, jako např. použité knihovny a nastavení překladu (stejně jako původnímu scriptu).
Celé kouzlo spočívá v automatickém vytváření souboru .depencies, který sestavuje gcc před každým překladem a který je includován do makefile. Takže už žádné make dep. Výsledná binárka se jmenuje jako nadřazený adresář a kompiluje to všechny soubory s odpovídající příponou. Pokud chcete víc výsledných binárek, budete muset přepsat pravidlo all to těsně pod ním. Do toho zbytku by nemělo být potřeba zasahovat.
Makefile jako takový je členěn do tří částí: konfigurace, pravidla a kouzla. Konfigurace obsahuje vše co je obvykle potřeba nastavovat. Pravidla popisují základní strukturu projektu (co bude výsledkem překladu) a pár těch obvyklých akcí. Kouzla se starají o závislosti mezi soubory.
Pokud používáte něco jiného než GNU/Linux, možná si budete muset obstarat GNU Make – nevím jak moc si s tím poradí ostatní varianty programu make. Rozhodně uvítám jakoukoliv konstruktivní připomínku k funkčnosti na jiných systémech. Díky.
CC=g++ SRC_EXTENSION=ccPo dalším spuštění mfgen je makefile již v pořádku a žádné další úpravy již nejsou potřeba. SRC_EXTENSION je přípona zdrojáků bez tečky.