Подтвердить что ты не робот

Какой смысл аклокальной?

Какова точка файла aclocal script и aclocal.m4, в контексте использования autotools для настройки исходных файлов? Из того, что я читал, aclocal сканирует макрофайлы для макросов, которые позже используются automake. Я не понимаю этот процесс в глубину, но кажется, что функция сканирования могла быть встроена в automake.

4b9b3361

Ответ 1

См. учебник Alexandre Duret Lutz Autotools, необходимо прочитать.

Он содержит диаграммы, объясняющие, как разные файлы проекта autotools взаимодействуют друг с другом и с помощью какого инструмента они используются: configure, config.h, config.status, aclocal.m4 и т.д.

EDIT: Джон Калькот также объясняет цель aclocal и aclocal.m4 в первой главе своей книги об Autotools: Глава 1: Краткое введение в GNU Autotools:

Утилита aclocal фактически документирована руководствами GNU в качестве временного решения для определенной гибкости в Autoconf. Autoconf был спроектирован и написан первым, а затем несколькими годами позже идея Automake была задумана как дополнение для Autoconf. Но Autoconf действительно не был предназначен для расширения в масштабе, требуемом Automake.

...

По сути, задача aclocals заключается в создании файла aclocal.m4 путем объединения различных макрофайлов из установленных пакетов Autotool и пользовательских мест, таких, что Autoconf может найти их все в одном месте.

...

Однако последняя документация из обоих наборов инструментов предполагает, что вся парадигма aclocal/acinclude устарела, в пользу более нового метода указания каталога, содержащего файлы макросов m4. Текущая рекомендация заключается в том, что вы создаете каталог в каталоге проекта, который называется просто m4 (acinclude кажется более подходящим для этого автора) и добавляет макросы в виде отдельных файлов .m4 в этот каталог. Все файлы в этом каталоге будут собраны в aclocal.m4 до того, как Autoconf обработает ваш файл configure.ac. В конечном итоге aclocal будет заменен функциональностью самого Autoconf.

Ответ 2

В моем программном обеспечении aclocal.m4 собирает различные нестандартные макросы Autoconf, которые я использую во время сборки моего программного обеспечения. Один из таких наборов макросов имеет дело с субсекундной синхронизацией - выбор лучшего из доступных вариантов (в соответствии с некоторым заранее определенным критерием для "лучшего" ); другой такой набор макросов посвящен тонкостям системы компиляции IBM Informix ESQL/C, поскольку она эволюционировала в течение последних двух десятилетий (она обрабатывает ESQL/C 5.20, где версия 5.00 была выпущена в 1990 году, а также обрабатывает последние версии IBM Informix ClientSDK 3.50, что, к моему большому огорчению, содержит ESQL/C 3.50, хотя оно было выпущено в 2008 году).

Итак, aclocal.m4 предназначен для локальных макросов, которые не обязательно являются частью обычного Autoconf, но которые используются вашим конкретным программным обеспечением.