Книга: Основы программирования в Linux
Встроенные правила
Встроенные правила
До сих пор вы описывали в make-файле подробно, как выполнять каждый шаг. В действительности у команды make
есть много встроенных правил, которые существенно упрощают make-файлы, особенно если у вас много исходных файлов. Для того чтобы проверить это, создайте традиционную программу, приветствующую мир:
#include <stdlib.h>
#include <stdio.h>
int main() {
printf("Hello Worldn");
exit(EXIT_SUCCESS);
}
He задавая make-файла, попробуйте откомпилировать ее с помощью команды make
:
$ make foo
сс foo.с -о foo
$
Как видите, make
знает, как запустить компилятор, хотя в данном случае она выбирает сс
вместо gcc
(в ОС Linux это нормально, потому что cc
— обычно ссылка на gcc
). Иногда эти встроенные правила называют подразумеваемыми правилами. Стандартные правила используют макросы, поэтому задавая некоторые новые значения для макросов, вы можете изменить стандартное поведение.
$ rm foo
$ make CC=gcc CFLAGS="-Wall -g" foo
gcc -Wall -g foo.с -o foo
$
С помощью опции -p
можно попросить команду make
вывести на экран встроенные правила. Их так много, что мы не можем привести в книге все встроенные правила, ограничимся коротким фрагментом вывода команды make -p
версии GNU, демонстрирующим часть этих правил:
OUTPUT_OPTION = -o $@
COMPILE.с = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -с
%.о: %.с
# commands to execute (built-in) :
$(COMPILE.с) $(OUTPUT_OPTION) $<
Теперь, принимая во внимание описанные встроенные правила, вы можете упростить ваш make-файл, удалив правила для создания объектных файлов и оставив только зависимости, таким образом, соответствующая секция make-файла читается просто:
main.о: main.c a.h
2.о: 2.с a.h b.h
3.o: 3.c b.h c.h
Эту версию можно найти в загружаемом из Интернета программном коде, в файле Makefile4.
- Специальные встроенные предикаты
- Встроенные шаблоны
- Глава 5 Шаблонные правила
- Правила творческой лени
- 1.3. Правила подключения к компьютеру внешних устройств
- Правила именования файлов
- 2. Правила вывода Армстронга
- 3. Производные правила вывода
- Правила работы успешных продавцов в кризис
- ГЛАВА 5 Правила продажи и обслуживания
- 4.1.3. Правила безопасности
- 4.11.4. Правила "все кроме"