2011-09-26 6 views
7

私はビルやメンテナンスを容易にするために、いくつかのコンポーネント(liba、b、c、d)に分割された私の手に大きなプロジェクトを持っています。パッケージ全体を構築する場合、すべてのサブコンポーネントを順番に構築しなければならず、これらのパッケージのいくつかは互いに依存します。サブパッケージが相互に依存するAutoconfサブディレクトリ?

より明示的に言えば、libaはb、c、dの前提条件であり、libaの存在はconfigureスクリプトによってチェックされます。このチェックは、bディストリビューションを単独でビルドするときにユーザーフレンドリなエラーメッセージを表示するためには絶対必要です。しかし、マスターパッケージとそのすべてのサブパッケージをビルドするとき、libaはサブターゲットとして構築されます。したがって、configureがマスタースイートで動作する場合、libaはまだインストールされておらず、bのlibaのチェックは失敗します。

--with-liba = internalまたは類似のフラグをbのconfigureスクリプトに渡すことで、この問題を解決できました。しかし、私はautoconfのためのそのようなフラグの渡しに関する文書を発見していません。当分の間、私はサブディレクトリを持つautoconf/automakeとちょうど同じ長い、長いカスタムのMakefileを持っていますが、依存関係を少し並べるので、(configure liba)=>(configure b)=>(build =>(ビルドb)=>(ビルドb)=>(ビルドb)の順番は(configure liba)=>(build liba)=>(install liba)=>

これを標準のautoconf/automakeサブディレクトリでどのようにリファクタリングすることができますか?

+0

autotoolsはパッケージツールではありません。そのようなものを使用しようとするのは、せいぜい苦痛です。別々のパッケージを作る。 apt/yum/pkg/etcが依存関係を処理するようにします。 –

答えて

関連する問題