Правила без рецептов или предварительных условий
Если у правила нет предварительных условий или рецепта, а цель правила — несуществующий файл, то make предполагает, что эта цель была обновлена всякий раз, когда выполняется её правило. Это означает, что все цели, зависящие от этой, всегда будут выполнять свой рецепт.
Пример проиллюстрирует это:
clean: FORCE
rm $(objects)
FORCE:
Здесь цель ‘FORCE’ удовлетворяет особым условиям, поэтому цель clean, от которой она зависит, вынуждена выполнить свой рецепт. В имени ‘FORCE’ нет ничего особенного, но оно часто используется таким образом.
Как вы можете видеть, использование ‘FORCE’ таким образом имеет тот же результат, что и использование ‘.PHONY: clean’.
Использование ‘.PHONY’ более явное и более эффективное. Однако другие версии make не поддерживают ‘.PHONY’; поэтому ‘FORCE’ появляется во многих файлах Make. См. Фейковые цели.
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/Force-Targets.html