Удаление переменных
Если требуется очистить переменную, обычно достаточно установить её значение в пустое. Расширение такой переменной даст тот же результат (пустая строка) независимо от того, была ли она установлена или нет. Однако, если вы используете функции flavor (см. Функция вкуса) и origin (см. Функция происхождения), есть разница между переменной, которая никогда не была установлена, и переменной с пустым значением. В таких ситуациях вы можете использовать директиву undefine, чтобы переменная выглядела так, как будто она никогда не была установлена. Например:
foo := foo bar = bar undefine foo undefine bar $(info $(origin foo)) $(info $(flavor bar))
Этот пример выведет «undefined» для обеих переменных.
Если вы хотите удалить определение переменной командной строки, вы можете использовать директиву override вместе с undefine, аналогично тому, как это делается для определений переменных:
override undefine CFLAGS
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/Undefine-Directive.html