Сборка, как понимает Makefile, состоит из множества целей. Например, для создания проекта вам может понадобиться
- Сборка file1.o из file1.c
- Сборка file2.o из file2.c
- Сборка file3.o из file3.c
- Сборка исполняемого файла1 из file1.o и file3.o
- Сборка исполняемого файла2 из файла2.o
Если вы реализовали этот рабочий процесс с помощью make-файла, вы можете сделать каждую из целей отдельно. Например, если вы написали
make file1.o
он будет создавать этот файл только при необходимости.
Имя all
не является фиксированным. Это просто условное название; all
target означает, что , если вы вызовете его, make соберет все того, что необходимо для полной сборки . Обычно это фиктивная цель, которая не создает никаких файлов, а просто зависит от других файлов. В приведенном выше примере сборка all необходима для сборки исполняемых файлов, остальные файлы извлекаются как зависимости. Так в make-файле это выглядит так:
all: executable1 executable2
all
target обычно является первым в make-файле, так как если вы просто напишите make
в командной строке, не указав цель, она создаст первую цель. И вы ожидаете, что это будет all
.
all
обычно также является целью .PHONY
. Узнать больше здесь .