Скачать презентацию УТИЛИТ MAKE ПРОИСХОЖДЕНИЕ До создания make Скачать презентацию УТИЛИТ MAKE ПРОИСХОЖДЕНИЕ До создания make

Утилит make.pptx

  • Количество слайдов: 7

УТИЛИТ MAKE. УТИЛИТ MAKE.

ПРОИСХОЖДЕНИЕ • До создания make системы сборки (компиляции) ПО Unix обычно состояли из shell-скриптов ПРОИСХОЖДЕНИЕ • До создания make системы сборки (компиляции) ПО Unix обычно состояли из shell-скриптов сборки, сопровождавших исходный код программ. • make была создана Стюартом Фельдманом в 1977 году в Bell Labs. • В настоящее время существует множество утилит для отслеживания зависимостей, но make — одна из самых широко распространённых, в первую очередь благодаря тому, что она включена в Unix, начиная с версии PWB/UNIX.

СОВРЕМЕННЫЕ ВЕРСИИ • BSD make Free. BSD, Net. BSD и Open. BSD. • GNU СОВРЕМЕННЫЕ ВЕРСИИ • BSD make Free. BSD, Net. BSD и Open. BSD. • GNU build system. • POSIX

MAKEFILE • Описание проекта для утилиты make содержится в специальном файле, который может называться MAKEFILE • Описание проекта для утилиты make содержится в специальном файле, который может называться произвольным образом, но по традиции обычно называется Makefile или makefile. • Определения переменных записываются так: <имя>=<определение> • Использование переменной записывается в одной из двух форм: $(< имя >) или ${< имя >}.

MAKEFILE • Зависимости между компонентами определяются: <цель>: <цель 1> <цель 2>…<цель n> • Цель, MAKEFILE • Зависимости между компонентами определяются: <цель>: <цель 1> <цель 2>…<цель n> • Цель, стоящая в левой части правила, считается устаревшей, если необходимо выполнить перекомпиляцию для её обновления. Это происходит в одном из этих случаев: o Одна из целей, стоящих в правой части правила, является устаревшей o Файл с именем <цель> не существует. o Файл с именем одной из целей, стоящих в правой части правила, имеет более позднюю дату модификации, чем файл с именем <цель>.

СТАНДАРТНЫЕ ПРАВИЛА • Команды могут явно указываться только пользователем. • Команды должны идти с СТАНДАРТНЫЕ ПРАВИЛА • Команды могут явно указываться только пользователем. • Команды должны идти с отступом в один символ табуляции от начала строки. Пробелы в качестве отступа не допускаются. • Также существуют шаблонные правила. Они определяют не зависимости одних файлов от других, а команды, которые выполняются, если зависимости удовлетворяют некоторому шаблону. • Например, шаблонное правило для зависимостей. o файлов от . c: • . с. о: (1) $(CC) –c $(CFLAGS) $<

ПРИМЕР # Makefile for projekt calculator Target=calc CC=gcc CFLAGS=-g –Wall OBJECTS=calc. o mylib. o ПРИМЕР # Makefile for projekt calculator Target=calc CC=gcc CFLAGS=-g –Wall OBJECTS=calc. o mylib. o #don’t change this all: $(TARGET) clean: rm –f *. o $(TARGET) core $(TARGET): $(OBJECTS) $(CC) –o $(TARGET) $(CFLAGS) $(OBJEKTS). c. o: $(CC) –c $(CFLAGS) $< #dependency from h files calc. o: mylib. h