Пустые целевые файлы для записи событий
Пустой целевой файл — это разновидность фиктивного целевого файла; он используется для хранения рецептов для действия, которое вы запрашиваете время от времени явно. В отличие от фиктивного целевого файла, этот целевой файл может действительно существовать; но содержимое файла не имеет значения и обычно пустое.
Цель пустого целевого файла — записывать, по времени последнего изменения, когда рецепт правила был последний раз выполнен. Это делается, потому что одна из команд в рецепте — команда touch для обновления целевого файла.
Пустой целевой файл должен иметь некоторые зависимости (иначе это не имеет смысла). Когда вы запрашиваете пересоздание пустого целевого файла, рецепт выполняется, если любая зависимость более свежая, чем целевой файл; другими словами, если зависимость изменилась с момента последнего пересоздания целевого файла. Вот пример:
print: foo.c bar.c
lpr -p $?
touch print
С этим правилом «make print» выполнит команду lpr если любой из исходных файлов изменился с момента последнего «make print». Автоматическая переменная «$?» используется для вывода только тех файлов, которые были изменены (см. Автоматические переменные).
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/Empty-Targets.html