Директива override
Если переменная была установлена с аргументом команды (см. Переопределение переменных), то обычные присваивания в файле make игнорируются. Если вы хотите установить переменную в файле make, даже если она была установлена с аргументом команды, вы можете использовать директиву override, которая выглядит так:
override variable = value
или
override variable := value
Для добавления большего текста к переменной, определенной в командной строке, используйте:
override variable += more text
См. Добавление большего текста к переменным.
Присваивания переменных, помеченные флагом override, имеют более высокий приоритет, чем все остальные присваивания, кроме другой override. Последующие присваивания или добавления к этой переменной, которые не помечены override, будут проигнорированы.
Директива override была придумана не для эскалации в войне между файлами make и аргументами командной строки. Она была придумана, чтобы вы могли изменять и добавлять значения, которые пользователь указывает с помощью аргументов командной строки.
Например, предположим, что вы всегда хотите включать переключатель «-g» при запуске компилятора C, но вы хотите позволить пользователю указать другие переключатели с помощью аргумента командной строки, как обычно. Вы можете использовать эту директиву override:
override CFLAGS += -g
Вы также можете использовать директивы override с директивами define. Это делается так, как вы, вероятно, ожидаете:
override define foo = bar endef
См. Определение многострочных переменных.
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Override-Directive.html