У меня есть большой проект (мастер), который разделен на несколько компонентов (liba, b, c, d) для упрощения сборки и обслуживания.При сборке всего пакета все подкомпоненты должны быть собраны в последовательности, и некоторые из этих пакетов зависят друг от друга.
В более явных терминах liba является необходимым условием для b, c и d, иНаличие либы проверяется скриптом настройки.Эта проверка, безусловно, необходима для предоставления удобных сообщений об ошибках при самостоятельном построении дистрибутива b.Однако при сборке мастер-пакета и всех его подпакетов liba создается как подзадача.Поэтому, когда configure запускается в основном наборе, liba еще не установлена, и проверка liba в b не удалась.
Я мог бы исправить эту проблему, передав флаг --with-liba = internal или аналогичный флагунастроить скрипт b;однако я не нашел никакой документации по такой передаче флага для autoconf.В настоящее время у меня есть длинный, длинный пользовательский Makefile в master, который делает то же самое, что и autoconf / automake с подкаталогами, но немного переупорядочивает зависимости, так что вместо (configure liba) => (configure b) => (build)liba) => (сборка b), порядок такой (настройка liba) => (сборка liba) => (установка liba) => (настройка b) => (сборка b).
Любая идея, какЯ мог бы рефакторинг это со стандартными подкаталогами autoconf / automake?