Операционные системы. Замятин А.В - 36 стр.

UptoLike

Составители: 

36
Цель (target) это некоторый желаемый результат, способ дости-
жения которого описан в правиле. Цель может представлять собой имя
файла. В этом случае правило описывает, каким образом можно полу-
чить новую версию этого файла.
В следующем примере целью является файл iEdit (исполняемый
файл программы некоторого гипотетического проекта текстового ре-
дактора с главным файлом проекта main.cpp и дополнительными
Editor.cpp, TextLine.cpp). Правило описывает, каким образом можно по-
лучить новую версию бинарного файла iEdit (скомпоновать из перечис-
ленных объектных файлов):
iEdit: main.o Editor.o TextLine.o
gcc main.o Editor.o TextLine.o -o iEdit
Если необходимо скомпилировать проект, написанный на C++, то
можно использовать компилятор g++. Следует также отметить, что
ключ o компилятора gcc указывает имя конечно бинарного файла.
Цель также может быть именем некоторого действия. В таком слу-
чае правило описывает, каким образом совершается указанное действие.
В следующем примере целью является действие clean (очистка, удале-
ние):
clean:
rm *.o iEdit
Подобного рода цели называют псевдоцелями (pseudo targets) или
абстрактными целями (phony targets).
Зависимость (dependency) это некие «исходные данные», необхо-
димые для достижения указанной в правиле цели, некоторое «предвари-
тельное условие» для достижения цели. Зависимость может представ-
лять собой имя файла. Для того чтобы успешно достичь указанной цели,
этот файл должен существовать.
В следующем правиле файлы main.o, Editor.o и TextLine.o являются
зависимостями. Эти файлы должны существовать для того, чтобы стало
возможным достижение цели построение файла iEdit:
iEdit: main.o Editor.o TextLine.o
gcc main.o Editor.o TextLine.o -o iEdit
Зависимость также может быть именем некоторого действия. Это
действие должно быть предварительно выполнено перед достижением
цели, указанной в правиле. В следующем примере зависимость
clean_obj является именем действия (удалить объектные файлы про-
граммы):