Mam duży projekt na ręce (master), który jest podzielony na kilka komponentów (liba, b, c, d), aby ułatwić budowanie i konserwację. Podczas budowania całego pakietu wszystkie podskładniki muszą być budowane w kolejności, a niektóre z tych pakietów zależą od siebie nawzajem.Podkatalogi Autoconf z podpakietami zależą od siebie?
W bardziej dosłownym znaczeniu, liba jest warunkiem wstępnym dla b, cid, a obecność liba jest sprawdzana przez skrypt configure. Kontrola ta jest bezwzględnie konieczna, aby zapewnić przyjazne dla użytkownika komunikaty o błędach podczas samodzielnego budowania dystrybucji b. Jednakże, budując pakiet główny i wszystkie jego podpakiety, liba jest budowana jako subtarget. Dlatego też, gdy konfiguracja działa w głównym pakiecie, liba nie jest jeszcze zainstalowana, a sprawdzenie liba in b nie powiedzie się.
Mogę rozwiązać ten problem, przekazując flagę --with-liba = wewnętrzną lub podobną do skryptu configure b; jednak nie znalazłem żadnej dokumentacji na temat tego typu flag-passing dla autoconf. Na razie mam długi, długi niestandardowy plik Makefile w systemie master, który działa tak samo jak autoconf/automake z podkatalogami, ale zmienia kolejność zależności tak, że zamiast (configure liba) => (configure b) => (build liba) => (kompilacja b), kolejność jest (konfiguracja liba) => (buduj liba) => (zainstaluj liba) => (konfiguruj b) => (kompilacja b).
Każdy pomysł, w jaki sposób mogę to zmienić za pomocą standardowych podkatalogów autoconf/automake?
Autotools nie są narzędziem do pakowania. Próba ich użycia jako takiego jest w najlepszym wypadku bolesna. Twórz oddzielne pakiety. Pozwól, aby apt/yum/pkg/etc zajmował się zależnościami. –