Что такое aclocal скрипт и aclocal.m4 файл в контексте использования autotools для настройки исходных файлов? Из того, что я читал, aclocal сканирует макрофайлы для макросов, которые позже используются automake. Я не понимаю этот процесс в глубину, но кажется, что функция сканирования могла быть встроена в automake.В чем смысл aclocal?
ответ
См. Alexandre Duret Lutz's Autotools tutorial, a необходимо прочитать.
Он содержит схемы объяснения, как различные файлы проекта Autotools взаимодействуют друг с другом и каким инструментом они используются: configure
, config.h
, config.status
, aclocal.m4
и т.д.
EDIT: Джон Calcote также объясняет цель ACLOCAL и aclocal.m4 в первой главе his book about Autotools: Chapter 1: A brief introduction to the GNU Autotools:
ACLOCAL утилита на самом деле документально руководствами GNU как временную работу вокруг для определенного отсутствия гибкости в Autocon е. Autoconf был спроектирован и написан первым, а затем несколькими годами позже идея Automake была задумана как дополнение для Autoconf. Но Autoconf действительно не был предназначен для расширения в масштабе, требуемом Automake.
...
По сути, работа ACLOCAL является создание файла aclocal.m4 путем объединения различных макро-файлов из установленных пакетов автоинструмента и указанного пользователя мест, так что Autoconf может найти их в одно место.
...
Однако последняя документация от обоих наборов инструментов предполагает, что вся ACLOCAL/acinclude парадигма является устаревшим, в пользу более нового способа определить каталог, содержащий m4 макрос файлы. Текущая рекомендация заключается в том, что вы создаете каталог в каталоге проекта, который называется просто m4 (acinclude кажется более подходящим для этого автора), и добавьте макросы в виде отдельных файлов .m4 в этот каталог. Все файлы в этом каталоге будут собраны в aclocal.m4 до того, как Autoconf обработает ваш файл configure.ac. В конечном итоге, aclocal будет заменен функциональностью самого Autoconf.
Итак, был ли заменен 'aclocal' функциональностью Autoconf? –
В моем программном обеспечении 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, но которые используются вашим конкретным программным обеспечением.
+1, это именно то, для чего это нужно. Многие люди просто бросают эти биты в файле configure.ac/configure.in, который, как известно, вызывает безумие, слепоту и даже синдром торекта для распространителей. –
Ссылка на статью Джона Калькота, указанную http://freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotools/. Я бы прокомментировал этот пост, но моя репутация здесь слишком низкая.
Эфирное пункт:
По сути, работа ACLOCAL является создание файла aclocal.m4 путем объединения различных макро-файлов из установленных пакетов автоинструмента и указанного пользователя мест, так что Autoconf может найти их все в одном месте.
Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/18762464) – jfeferman
- 1. В чем смысл! #: 3?
- 2. В чем смысл итераторов?
- 3. В чем смысл $ @?
- 4. В чем смысл «броска»?
- 5. В чем смысл servercallback()?
- 6. В чем смысл `!! empty?`?
- 7. Eval(), в чем смысл?
- 8. В чем смысл «ITEM_ID_LIST»?
- 9. В чем смысл «? 1»
- 10. В чем смысл STL?
- 11. В чем смысл CV_INSTRUMENT_REGION()?
- 12. В чем смысл addEventListener()?
- 13. В чем смысл noreturn?
- 14. В чем смысл! Int_variable--?
- 15. SOAP - В чем смысл?
- 16. В чем смысл «#»?
- 17. В чем смысл оператора &?
- 18. В чем смысл g0ofg1?
- 19. В чем смысл XamlType.GetAliasedProperty
- 20. В чем смысл main_syntax
- 21. В чем смысл этого
- 22. В чем смысл this.foo()?
- 23. В чем смысл -primitiveValueForKey :?
- 24. В чем смысл `------ rwx`
- 25. В чем смысл оператора || =
- 26. В чем смысл [...] regex?
- 27. В чем смысл «LocalDb»?
- 28. В чем смысл CTOR?
- 29. В чем смысл * &
- 30. Vulcanize, в чем смысл?
@WilliamPursell, можете ли вы объяснить теги «m4sh» и «m4sugar», пожалуйста? Каковы они и как они применяются к этому вопросу, когда они не упоминаются нигде в вопросе или ответах? – Charles
@Charles autoconf напрямую не использует m4, скорее использует обертки 'm4sh' и' m4sugar'. Цель aclocal - сделать макросы m4sh и m4sugar доступными для autoconf. –
@WilliamPursell, проблема здесь в том, что вопрос не в конечном счете о 'm4sh' или' m4sugar', а о 'aclocal' и autotools вообще. Я ничего здесь не вижу, или в другом вопросе, который вы отметили этими двумя тегами, что фактически делает теги релевантными для вопроса. – Charles