autoconf

Инструмент для автоматической генерации скриптов конфигурации, которые адаптируют исходный код программного обеспечения к различным Unix-подобным системам. Он позволяет разработчикам создавать переносимые и настраиваемые пакеты исходного кода, автоматически определяя характеристики целевой системы и настраивая параметры сборки соответствующим образом. Autoconf является частью GNU Build System и широко используется в open-source проектах для упрощения процесса компиляции на различных платформах.

Особенности

  • автоматическое определение наличия библиотек, заголовочных файлов и функций на целевой системе;
  • создание переносимых скриптов конфигурации, работающих на различных Unix-подобных системах;
  • поддержка создания кроссплатформенных Makefile через интеграцию с automake;
  • расширяемость с помощью макросов M4 для пользовательских проверок;
  • генерация заголовочных файлов с параметрами конфигурации.

Основные компоненты

Инструментарий autoconf состоит из нескольких взаимосвязанных программ, которые работают вместе для создания системы сборки (подробнее с документацией можно ознакомиться здесь):

Основные исполняемые программы

Основные утилиты autoconf предоставляют функционал для различных этапов настройки системы сборки:

  • autoconf — генерирует скрипт configure из файла configure.ac с использованием макросов M4;
  • autoheader — создает файл config.h.in с шаблонами для #define директив, которые затем заполняются скриптом configure;
  • autom4te — кэширующий процессор для M4, используемый autoconf для ускорения обработки макросов;
  • autoreconf — автоматически запускает autoconf, autoheader, aclocal, automake, libtoolize и другие необходимые инструменты в правильном порядке;
  • autoscan — анализирует исходный код и помогает создать начальный вариант файла configure.ac;
  • ifnames — извлекает и показывает, какие символы #ifdef используются в исходном коде программы.

Вспомогательные инструменты и макросы

Autoconf тесно интегрируется с другими инструментами GNU Build System:

  • aclocal — собирает макросы M4, необходимые для работы autoconf, в один файл aclocal.m4;
  • automake — создает Makefile.in из Makefile.am (часто используется вместе с autoconf);
  • libtool — управляет созданием статических и shared библиотек на различных платформах;
  • pkg-config — используется для получения флагов компиляции и линковки для установленных библиотек.

Стандартные макросы проверок

Autoconf предоставляет обширный набор предопределенных макросов для проверки различных аспектов системы:

  • AC_PROG_CC — проверяет наличие компилятора C и устанавливает переменную CC;
  • AC_CHECK_HEADERS — проверяет наличие указанных заголовочных файлов;
  • AC_CHECK_LIB — проверяет наличие библиотеки и ее функций;
  • AC_CHECK_FUNC — проверяет наличие указанной функции в библиотеках;
  • AC_OUTPUT — определяет выходные файлы, которые должны быть сгенерированы;
  • AC_CONFIG_FILES — указывает файлы, которые должны быть созданы из шаблонов.

Процесс работы и генерируемые файлы

Типичный процесс работы с autoconf включает создание нескольких файлов, которые преобразуются в готовую систему сборки:

  1. configure.acconfigure (через autoconf);
  2. config.h.inconfig.h (через configure);
  3. Makefile.amMakefile.inMakefile (через automake и configure);
  4. Запуск ./configure создает окончательные Makefile и config.h для конкретной системы.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "autoconf/2.72@aurora",
    )    

Процесс локальной сборки описан в документации.

autoconf

Версия
Домашняя страница
Скачать
package
594.27 Kb
MD5: d54af4f43cb8dab975e336703b67a15a
Updated: 04.09.2025, 09:09:03
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.