Утилита Make используется для автоматизации разработки программ. Для этого в текстовом файле с именем makefile указывается следующая информация:
- целевые файлы (цели), которые необходимо построить;
- правила для их построения;
- зависимости, определяющие когда данную цель необходимо перестроить заново.
Так, для программы из задания 2.2 makefile может иметь следующий вид:
CFLAGS=-c
CC=gcc
obr: main.o obr.o
<Tab> $(CC) -o obr main.o obr.o
main.o: main.c
<Tab> $(CC) $(CFLAGS) main.c
obr.o: obr.c
<Tab> $(CC) $(CFLAGS) obr.c
Здесь слева от ':' указана цель, справа - ее зависимости. Правило для построения цели указано на следующей строке, которая должна начинаться с символа табуляции. CC и CFLAGS - переменные утилиты Make (в данном примере CC задает имя компилятора, CFLAGS - опцию компилятора ). Значение для переменной может быть задано в файле makefile (как в примере) и/или в командной строке (например, $make CC=g++).
После подготовки файла makefile для создания исполняемой программы достаточно ввести команду
$make или
$make имя_make_файла (если имя_make_файла отлично от makefile)
По этой команде утилита Make выполнит файл makefile из текущего каталога и автоматически перетранслирует только те файлы, которые необходимо.
Задание 3.
3.1. Создайте файл makefile для программы из задания 2.2, предварительно удалив файлы *.o и obr из текущего каталога. Затем выполните команду
$make
Запишите в отчет текст файла makefile с пояснениями и команды, выполненные утилитой Make.
3.2. Незначительно модифицируйте файл obr.c, выполните команду $make и запишите команды, выполненные утилитой Make.
3.3.Выполните команду $make, задав в командной строке через переменную CC другое имя компилятора - g++.