Эффективное использование GNU Make

       

Переменные


Возможность использования переменных внутри make-файла - очень удобное и часто используемое свойство make. В традиционных версиях утилиты, переменные ведут себя подобно макросам языка Си. Для задания значения переменной используется оператор присваивания. Например, выражение:

obj_list = main.o Editor.o TextLine.o присваивает переменной obj_list значение "main.o Editor.o TextLine.o" (без кавычек). Пробелы между символом '=' и началом первого слова игнорируются. Следующие за последним словом пробелы также игнорируются. Значение переменной можно использовать с помощью конструкции:

$(имя_переменной)

Например, при обработке такого make-файла:

dir_list = . .. src/include all: echo $(dir_list) на экран будет выведена строка:

. .. src/include

Переменные могут не только содержать текстовые строки, но и "ссылаться" на другие переменные. Например, в результате обработки make-файла:

optimize_flags = -O3 compile_flags = $(optimize_flags) -pipe all: echo $(compile_flags)

на экран будет выведено:

-O3 -pipe

Во многих случаях использование переменных позволяет упростить make-файл и повысить его наглядность. Для того чтобы облегчить модификацию make-файла, можно разместить "ключевые" имена и списки в отдельных переменных и поместить их в начало make-файла:

program_name = iEdit obj_list = main.o Editor.o TextLine.o $(program_name): $(obj_list) gcc $(obj_list) -o $(program_name) ...

Адаптация такого make-файла для сборки другой программы сведется к изменению нескольких начальных строк.



Содержание раздела