Правила суффиксов для архивов
Вы можете написать особый вид правила суффикса для работы с архивными файлами. Подробное объяснение правил суффиксов см. в Правилах суффиксов. Правила суффиксов для архивов устарели в GNU make, так как правила шаблонов для архивов являются более общим механизмом (см. Обновление архивов). Но они сохраняются для совместимости с другими make.
Чтобы написать правило суффикса для архивов, просто напишите правило суффикса, используя целевой суффикс ‘.a’ (обычный суффикс для архивных файлов). Например, вот устаревшее правило суффикса для обновления архивной библиотеки из файлов исходного кода C:
.c.a:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o
$(AR) r $@ $*.o
$(RM) $*.o
Это работает так же, как если бы вы написали правило шаблона:
(%.o): %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $*.o
$(AR) r $@ $*.o
$(RM) $*.o
Фактически, именно это make делает, когда видит правило суффикса с ‘.a’ в качестве целевого суффикса. Любое правило двойного суффикса ‘.x.a’ преобразуется в правило шаблона с целевым шаблоном ‘(%.o)’ и предпосылкой шаблона ‘%.x’.
Поскольку вы можете захотеть использовать ‘.a’ в качестве суффикса для какого-либо другого типа файла, make также преобразует правила суффиксов архивов в правила шаблонов обычным способом (см. Правила суффиксов). Таким образом, правило двойного суффикса ‘.x.a’ создает два правила шаблонов: ‘(%.o): %.x’ и ‘%.a: %.x’.
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/Archive-Suffix-Rules.html