Создание графика зависимостей пакетов Autotools - PullRequest
2 голосов
/ 09 февраля 2012

У меня есть программная система, имеющая более 30 пакетов с открытым исходным кодом, большинство из которых используют пакет GNU Autotools.

Существуют ли инструменты для автоматической генерации графа зависимостей от пакета к пакету?Т.е. я хотел бы видеть что-то вроде gst-plugins-good -> gst-plugins-base -> gstreamer -> glib.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Наверное, нет, потому что это сложная проблема. Если бы был только один способ собрать пакет, это могло бы быть не так уж и плохо, но в целом это не так. У вас есть опции --enable-foo и --with-foo, которые вы можете передать в configure. Иногда они также зависят от пакета и требуют большего количества пакетов. Большинство дистрибутивов Linux (я думаю, но не совсем уверен) поддерживают такие списки зависимостей для yum, или zypper, или apt, или любого другого менеджера пакетов, и только на один уровень, оставляя его на усмотрение менеджер пакетов для прохождения графа. Пакеты для дистрибутива строятся только одним способом. Эти списки также нередко ломаются.

0 голосов
/ 09 февраля 2012

Я так не думаю, но вы, вероятно, могли бы что-то сделать вместе со следующими знаниями:

  • Сканирование файла с именем configure.ac или configure.in в корневом каталоге пакета.
  • Ищите строку вида PKG_CHECK_MODULES([...],[...]...)
  • Второй аргумент этого макроса состоит из требований к пакету в форме package или package >= version, разделенных пробелами.
  • Строка requirement может не совпадать с именем тарбола пакета;tarball, содержащий package.pc или package.pc.in, предоставляет пакет package.
  • . Это работает только для зависимостей, использующих pkg-config.Некоторые этого не делают, и вам нужно отслеживать эти зависимости вручную.
...