2011-09-26 89 views
7

我的手上有一個大型項目(主),它被拆分成幾個組件(liba,b,c,d)以簡化構建和維護。在構建整個軟件包時,所有子組件都必須按順序構建,其中一些軟件包依賴於其他組件。Autoconf子目錄的子包依賴於彼此嗎?

更明確地說,liba是b,c和d的先決條件,並且配置腳本檢查是否存在liba。此檢查對於在自行構建b分發時提供用戶友好的錯誤消息是非常必要的。但是,在構建主包及其所有子包時,liba將構建爲子目標。因此,當配置在主控套件上運行時,liba尚未安裝,並且b中的liba檢查失敗。

我可以通過將--with-liba = internal或similar標誌傳遞給b的配置腳本來解決此問題;然而,我還沒有發現任何關於autoconf標誌傳遞的文檔。目前,我在master中有一個很長很長的自定義Makefile,與autoconf/automake和子目錄一樣,但重新排序了一些依賴關係,以便代替(配置liba)=>(configure b)=>(build liba)=>(build b),順序是(configure liba)=>(build liba)=>(install liba)=>(configure b)=>(build b)。

任何想法如何我可以用標準的autoconf/automake子目錄來重構這個?

+0

自動工具不是一個打包工具。試圖像這樣使用它們是最痛苦的。構建獨立的包。讓apt/yum/pkg/etc處理依賴關係。 –

回答