239
исполнении правила. В общем случае их может и не быть, так же как может и
не быть зависимостей.
Пример правила без зависимостей:
сlean:
-rm -f $(NAME).hex \
$(NAME).bin \
$(NAME).map \
$(NAME).lst
В данном правиле производится стирание файлов, имя которых состоит из
содержимого переменной NAME и расширений .hex, .bin, .map и .lst.
Необходимо заметить, что оно будет работать совершенно неожиданным
образом, если в каталоге будет находиться файл с именем clean.
Значение переменных в makefile задается с помощью знака присваивания.
В переменную попадает все содержимое строки.
LFLAGS = --code-loc 0x2100 --xram-loc 0x6000 --stack-loc 0x80
Возможно продление строки с помощью обратного слэша. Кроме того,
возможно использование ранее определенных переменных при определении
новых.
LIST_SRC = \
$(SRC_DIR)/led.c \
$(SRC_DIR)/max.c \
$(SRC_DIR)/test_led.c
В круглых скобках возможно производить различные действия, с
помощью достаточно большого количества функций. Например, возможна
переделка списка исходных текстов в список объектных модулей:
LIST_OBJ = $(LIST_SRC:.c=.rel)
С помощью функции shell возможен вызов командного интерпретатора.
Результатом его работы является строка, полученная через стандартный вывод
и присваиваемая переменной.
DATE = $(shell date +%d-%m-%g_%H-%M-%S)
VERSION = $(shell cat VERSION)
В документации к утилите make подробно описаны функции, которые
можно использовать при определении переменных [34].
Достарыңызбен бөлісу: