Сборочные зависимости и адаптация к окружению
Что не умеет Make:
- … TODO 
⇒ Makefile — это генерат!
Autotools
- Генерация configure — autoconf - + autoheader (сводный .h-файл найденного) 
 
- Автоматическое конструирование Makefile.in для autoconf — automake 
- Автоматическая проверка зависимостей в .h-файлах — autoscan 
- Переопределение процедур поиска для конкретной системы — aclocal 
- Получение configure — autoreconf (последовательность вызова других утилит) 
+ libtool для сборки библиотек и компиляции с ними
Картинка по autotools:
А попроще?
pkg-config — Только способ запуска gcc для .h и библиотек
Расширения для других make-подобных инструментов.
CMake
- Аналог automake
- + Простой входной файл
- + Разные back-end-ы (make, ninja, VC++-проект, XCode), ...
- - Собственный модули определения библиотек
- Поддержка out-of-tree сборки
Д/З
- Прочитать - (и прощёлкать) простую методичку по autotols 
- слайды по autotools 
- (заглянуть и использовать по необходимости) в Autotools Mythbuster, Autotools Tutorial, AutoBook 
- (вариант — сто же самое про CMAKE)
 
- Обработчик регулярных выражений. -  Установить в сборочное окружение - ncurses, если ещё не стоит (см. ../03_TerminalProject#A.2BBBQ-.2F.2BBBc-) 
- библиотеку PCRE2 и её сборочный компонент. В ALT это пакет libpcre2-devel. 
 
- Добейтесь работоспособности двух простых программ: - Window.c (собирать с с -lncursesw) 
- pcredemo.c (собирать с -lpcre2-8). 
- Пояснение по работе pcredemo.cДля того, чтобы найти регулярное выражение в строке, надо: - Скомпилировать это РВ (pcre2_compile) 
- Подготовить структуру данных, в которой будут храниться результаты поиска (pcre2_match_data_create_from_pattern) 
- Поискать (pcre2_match) 
- Вывести результат. Обратите внимание на то, что в результат входит таблица ovector, в которой есть сама найденная подстрока, а также её части, соответствующие выделенным компонентам РВ: - При установленном locale программа поддерживает многобайтную кодировку за счёт параметра PCRE2_UCP: 
 
 
 
- Создайте подкаталог 05_Environmental в вашем git-репозитории и напишите программу, которая откроет три окна, в первом введёт RE-шаблон, во втором — строку, а в третьем будет выводить сообщения об ошибках и результат - Используйте autotools или cmake с проверкой наличия библиотек и include-файлов - Внимание! Почти все имена из pcre.h — это макросы; например pcre2_compile соответствует в libpcre2-8 функции pcre2_compile_8() 
- Внимание! Стандартная проверка pcre2.h завершается с ошибкой! Не включайте её (разрешается) или найдите причину и путь решения (более сложный вариант). 
 
- Не храните никаких генератов (в т. ч. результаты работы autoreconf, например, Makefile) - Предусмотрите цель allclean для удаления таких генератов 
 
- Предусмотрите параметр configure --without-UTF, который убирает флаг PCRE2_UCP из кода. 
 
 Как-то так   
-  Установить в сборочное окружение 

