Состав makefile
Makefile состоит из правил, переменных и директив
Команды:
Перед командой используется знак табуляции
Перенести длинную команду/переменные и тд можно с помощью знака “\”
Команды выполняются когда изменились зависимости (когда файлы от которых зависит цель новее чем сама цель)
@ — указывает НЕ выводить команду в терминал
— (тире) перед командой указывает игнорировать ошибки при их возникновении
@echo “text” — выводит на экран сообщение “text”
Цель – желаемый результат и набор инструкций для этого результата.
Название цели д.б. уникальным.
Обычно структура выглядит так:
target: prerequiites
commands
цель: зависимости
[tab] команды
Важно – команды пишутся через tab!!!!
Зависимости могут отсутствовать
Пример 1:
all:
[tab] g++ -std=c++14 main.cpp -o hello
Цель all
зависимостей нет
при помощи компилятора g++ из исходника main.cpp собирается программа hello
Пример 2 (2 цели):
all:
[tab] g++ -std=c++14 main.cpp -o hello
debug:
[tab] g++ -g -std=c++14 main.cpp -o hello
Общепринятые цели:
all -сборка нескольких программ
clear (clean) – очистка от файлов, созданных make-ом
install -установка программы
uninstall – удаление программ