Различия между версиями 1 и 2
Версия 1 от 2020-10-12 10:11:12
Размер: 1363
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2020-10-12 10:21:34
Размер: 1590
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
Что не умеет Make:
 … '''TODO'''
⇒ Makefile ­— это ''генерат''!
Строка 8: Строка 11:
 * Получение `configure` — `autoreconf` (послелдовательность вызова других утилит)
Строка 18: Строка 22:
⇒ Makefile ­— это ''генерат''!
Строка 26: Строка 30:
[[attachment:cmake_intro.tar.gz|Пример]]

Сборочные зависимости и адаптация к окружению

Что не умеет Make:

  • TODO

⇒ Makefile ­— это генерат!

Autotools

  • Генерация configure — autoconf

    • + autoheader (сводный .h-файл найденного)

  • Автоматическое конструирование Makefile.in для autoconf — automake

  • Автоматическая проверка зависимостей в .h-файлах — autoscan

  • Переопределение процедур поиска для конкретной системы — aclocal

  • Получение configureautoreconf (послелдовательность вызова других утилит)

+ libtool для сборки библиотек и компиляции с ними

Картинка по autotools:

Autoconf-automake-process.svg

А попроще?

pkg-config — Только способ запуска gcc для .h и библиотек

Расширения для других make-подобных инструментов.

CMake

  • Аналог automake
  • + Простой входной файл
  • + Разные back-end-ы (make, ninja, VC++-проект, XCode), ...
  • - Собственный модули определения библиотек
  • Поддержка out-of-tree сборки

Пример

Д/З

LecturesCMC/LinuxApplicationDevelopment2020/05_Environmental (последним исправлял пользователь FrBrGeorge 2020-10-15 02:19:17)