Основи Makefile
Коротко: Makefile описує, які файли з яких виходять і якими командами. make потім перезбирає лише застаріле.
Докладніше: Інструмент родом з 1970-х, але широко використовується й сьогодні, зокрема як простий запускач завдань для проєктів на будь-якій мові.
Подробиці
- Правило:
ціль: залежностіі нижче, з відступом табуляцією, команди.
program: main.o util.o
cc -o program main.o util.o
%.o: %.c
cc -c $< -o $@- Змінні:
$@(ціль),$<(перша залежність),$^(усі). Власні на кшталтCC=gcc. - Актуальність:
makeпорівнює часи зміни. Збираються лише цілі з новішими залежностями. - .PHONY: Цілі без файлу, такі як
testчиclean, оголошують так, щоб однойменний файл їх не блокував. - Паралельно:
make -j8збирає незалежні цілі одночасно. - Пастки: Пробіли замість табуляції, кожен рядок команди виконується в окремій оболонці.
- Альтернативи: CMake, Ninja, Just, Task. Див. залежності та бібліотеки.
Див. також: відтворювані збірки