которые требуется выполнить для сборки исполняемого файла из исходных файлов. Третья цель должна называться install
. У нее не должно быть пререквизитов и должен быть командный сценарий, копирующий исполняемый файл из директории, содержащей make-файл, в директорию, где он должен быть установлен. Последняя цель должна называться clean
. Как и install
, она не должна иметь пререквизитов. Ее командный сценарий должен удалять из текущей директории исполняемый файл и промежуточные объектные файлы. Цели clean
и install
должны быть помечены как PHONY
.
Например, чтобы с помощью GCC собрать исполняемый файл из исходного кода из примера 1.4, make-файл может иметь вид, показанный в примере 1.14.
# Это цель по умолчанию, которая будет собрана при
# вызове make
.PHONY: all
all: hello
# Это правило говорит make, как собрать hello из hello.cpp
hello: hello.cpp
g++ -o hello hello.cpp
# Это правило говорит make скопировать hello в поддиректорию binaries,
# создав ее, если требуется
.PHONY: install
install:
mkdir -p binaries
cp -p hello binaries
# Это правило говорит make удалить hello и hello.о
.PHONY: clean
clean:
rm -f hello
Чтобы собрать исполняемый файл из исходного кода из примера 1.4 с помощью Visual С++, используйте make-файл, показанный в примере 1.15.
#цель по умолчанию
.PHONY: all
all: hello.exe
#правило для сборки hello.exe
hello.exe: hello.cpp
cl -nologo -EHsc -GR -Zc:forScope -Zc:wchar_t
-Fehello hello.cpp
.PHONY: install
install:
mkdir -о binaries
cp -p hello.exe binaries
.PHONY: clean
clean:
rm -f hello.exe
Команды и списки целей или пререквизитов могут занимать несколько строк текста make-файла, для чего используется символ продолжения строки , как и в исходных файлах С++.
Чтобы собрать исполняемый файл, установите переменные среды, необходимые для инструментов командной строки, перейдите в директорию, содержащую make
. Чтобы скопировать исполняемый файл в поддиректорию make install
. Чтобы удалить из директории make-файла исполняемый файл и промежуточный объектный файл, введите make clean
.
Если вы установили среду Cygwin, описанную в рецепте 1.1, можете выполнить make-файл из примера 1.15 непосредственно из оболочки Windows
Также этот make-файл можно выполнить из оболочки Cygwin, как описано далее. В PATH
, то оболочку Cygwin можно запустить из make
.
Аналогично можно выполнить make-файл из оболочки MSYS: в
Если ваш инструментарий предоставляет сценарий для установки переменных среды, запуск make- файла из Cygwin или MSYS несколько более трудоемок, чем его запуск из cmd.exe. Однако для некоторых make-файлов это обязательное условие, так как они не будут работать из-под
В нескольких последующих рецептах вы увидите, что GNU