>

Пакеты Conan>

gnu-config

gnu-config

Набор скриптов и утилит, являющихся частью GNU Build System, которые предоставляют стандартизированный способ определения характеристик системы и создания переносимых configure-скриптов. Эти инструменты автоматически определяют архитектуру системы, доступные компиляторы, библиотеки и другие параметры, необходимые для настройки сборки программного обеспечения под различные Unix-подобные платформы.

Особенности

  • автоматическое определение характеристик системы (архитектура, компиляторы, библиотеки, доступные функции);
  • генерация переносимых configure-скриптов для адаптации сборки к разным платформам;
  • поддержка кросс-компиляции и сборки для различных целевых систем;
  • интеграция с инструментами GNU Build System (autoconf, automake, libtool).

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

GNU Config состоит из набора скриптов и макросов, которые используются для создания и выполнения configure-скриптов, адаптирующих сборку программного обеспечения к конкретной системе (подробнее с документацией можно ознакомиться здесь).

Скрипты определения системы

Основные скрипты config.guess и config.sub используются для определения характеристик системы в стандартизированном формате GNU triplet. Эти скрипты являются фундаментальными компонентами системы, обеспечивая единообразное определение архитектуры и операционной системы на различных платформах.

Ключевые скрипты:

  • config.guess — автоматическое определение типа системы, на которой запускается скрипт;
  • config.sub — нормализация и валидация спецификаторов системы (канонические имена);
  • install-sh — переносимый скрипт для установки файлов (замена команды install);
  • mkinstalldirs — создание иерархии директорий с установкой правильных прав доступа;
  • depcomp — управление зависимостями компиляции для различных компиляторов;
  • compile — обёртка для компиляторов, обеспечивающая единообразное поведение;
  • ylwrap — обёртка для генераторов лексических анализаторов (lex/yacc).

Макросы проверки системы

Autoconf предоставляет сотни макросов для проверки возможностей системы, которые используются в файлах configure.ac для создания настраиваемых скриптов сборки. Эти макросы позволяют автоматически определять доступные функции, библиотеки и системные характеристики.

Основные категории макросов:

  • Проверка компиляторов: AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77;
  • Проверка библиотек: AC_CHECK_LIB, AC_SEARCH_LIBS;
  • Проверка заголовочных файлов: AC_CHECK_HEADERS, AC_CHECK_HEADER;
  • Проверка функций: AC_CHECK_FUNCS, AC_CHECK_FUNCTION;
  • Проверка типов данных: AC_CHECK_TYPES, AC_TYPE_SIZE_T;
  • Проверка структур: AC_CHECK_MEMBERS;
  • Настройка параметров сборки: AC_ARG_ENABLE, AC_ARG_WITH.

Интеграция с pkg-config

GNU Config может интегрироваться с pkg-config для автоматического обнаружения зависимостей и получения флагов компиляции. Эта интеграция упрощает управление внешними библиотеками и обеспечивает правильную настройку параметров сборки.

Функции интеграции:

  • PKG_CHECK_MODULES — проверка наличия и версий библиотек через pkg-config;
  • Автоматическое добавление флагов компиляции и линковки;
  • Поддержка статических и динамических библиотек;
  • Проверка совместимости версий зависимостей.

Поддержка кросс-компиляции

GNU Build System предоставляет развитую поддержку кросс-компиляции, позволяя собирать программное обеспечение для целевых платформ, отличных от системы сборки. Это особенно важно для разработки под встраиваемые системы и различные архитектуры процессоров.

Механизмы кросс-компиляции:

  • Спецификация хоста и цели: --host, --build, --target параметры configure;
  • Настройка инструментов: автоматическое определение или указание кросс-компиляторов;
  • Проверки во время выполнения: разделение проверок для системы сборки и целевой системы;
  • Поддержка эмуляции: возможность запуска тестов через эмулятор (qemu и др.);
  • Инструменты обёртки: адаптация путей к компиляторам и системным утилитам.

Интеграция и использование

GNU Config и GNU Build System широко используются в open-source сообществе для обеспечения переносимости программного обеспечения между различными Unix-подобными системами. Они интегрируются в процесс разработки через стандартные файлы configure.ac и Makefile.am.

Типичные сценарии использования:

  • Создание переносимых configure-скриптов для open-source библиотек и приложений;
  • Автоматическая настройка параметров сборки для различных дистрибутивов Linux;
  • Кросс-компиляция для встраиваемых систем и различных архитектур процессоров;
  • Управление сложными зависимостями в крупных проектах;
  • Стандартизация процесса сборки и установки программного обеспечения.

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

Документация по использованию 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 = (
        "gnu-config/cci.20210814@aurora",
    )    

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

gnu-config

The GNU config.guess and config.sub scripts
Лицензия
GPL-3.0-or-later
Версия
Домашняя страница
Скачать
package
25.69 Kb
MD5: ade72d2dcfa33281a0cab35c70dbc836
Updated: 04.09.2025, 10:08:48
Использование в проекте

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

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