Директива override
Переменные в GNU Make могут создаваться и получать свое значение разными способами:
- Задаваться внутри make-файла
- "Автоматически" создаваться программой make из переменных среды
- Задаваться через командную строку при вызове программы make
compile_flags := -pipe $(compile_flags) all: echo $(compile_flags) Предположим, что переменная compile_flags была задана через командную строку при запуске программы make:
make compile_flags="-O0 -g" В результате обработки make-файла на экран будет выведена строка:
-O0 -g То есть попытка изменить значение переменной compile_flags внутри make-файла была проигнорирована. Если все-таки возникает необходимость в изменении переменной, которая была задана с помощью командной строки, нужно использовать директиву override. Директива помещается перед именем переменной, которая должна быть изменена:
override compile_flags := -pipe $(compile_flags) all: echo $(compile_flags) Теперь в результате обработки make-файла на экран будет выдана строка:
-pipe -O0 -g