Buildroot: сборка только одного пакета как общей, так и статической, все остальные — только общие

buildroot предлагает возможность сборки

  • только статичный,
  • только поделился,
  • или совместно используемые и статические библиотеки

из выбранных пакетов.

Назначенные элементы конфигурации BR2_STATIC_LIBS, BR2_STATIC_LIBS, а также BR2_SHARED_STATIC_LIBS,

Вопрос:

Можно ли построить как общую, так и статическую библиотеку для только одна упаковка, при создании только общих библиотек для все остальные пакеты?

Единственный проект, для которого мне нужна статическая библиотека, — это пакет на основе autotools.

Мои усилия:

Я прочитал руководство, но безрезультатно. Хотя я и придумал одну идею, но думаю, что она не сработает: я мог бы вызвать buildroot для вызова configure скрипт с некоторыми заданными мною аргументами, форсирующий дополнительное создание статической библиотеки. Однако это противоречило бы аргументам, предоставляемым buildroot, которые вынуждают configure делать совсем наоборот. (Создайте только общую библиотеку.)

Спасибо!

К сожалению, я даже не могу сказать, какую версию buildroot я использую, так как я не нашел способа узнать номер версии buildroot.

1

Решение

Buildroot напрямую не поддерживает изменение параметров только для одного пакета. Это просто взорвало бы количество вариантов.

Самый простой способ сделать это — отредактировать package/foo/foo.mk и добавьте к нему следующую строку:

FOO_CONF_OPTS += --enable-static

Эти параметры идут после параметров автоконфигурации по умолчанию (которые содержат --enable-shared --disable-static) и, таким образом, переопределит их.

Если вы не хотите трогать исходники Buildroot, вы также можете сделать это в своем local.mk или в BR2_EXTERNAL — см. руководство по их настройке.

Номер версии Buildroot кодируется в верхней части файла Makefile (строка 90 в текущем мастере) в переменной BR2_VERSION, Вы также можете посмотреть в верхней части сгенерированного .config файл, содержащий версию, расширенную хешем git commit.

1

Другие решения

Других решений пока нет …