2011-07-13 9 views
8

私は大規模なautoconf/automakeプロジェクトをAC_CONFIG_SUBDIRSを使ってコンポーネントに分解しました。 autoconf/configureをより速く実行する方法はありますか?おそらく、並行してサブディレクトリを作成したり、再利用可能な結果を​​キャッシュしたりしますか?大きなプロジェクトのautoconf/configureを高速化する

コンポーネントを並行してビルドするビルドスクリプトを簡単に書くことができますが、ビルド構造のメンテナンスのセカンダリポイントを追加したくない場合があります。

答えて

7

することはできconfigure cache featureを使用してキャッシュ結果、複数のconfigure(同じconfigureの数回、または再帰的なサブconfigure)との間に。あなたがキャッシュ(前回のconfigureの実行によって発見されなかった新しいパッケージをインストールした後のような)システムの構成変更を削除するために覚えておく必要がありますが、単純に

./configure -C 

を実行します。サードパーティ製のマクロを使用している場合は、その一部をcache their resultsに正しく修正する必要があります(一般的なエラーは、そのテストの結果がキャッシュされているとスキップされる可能性のあるテスト中に構成を決定することです)。

複数のプロジェクト間でキャッシュを共有する場合は、config.siteで設定できます。

+2

すべてのカウントについてほぼ同意しましたが、キャッシュ変数を 'config.site'に設定すると悪いアイデアになります。数年前にconfcacheをgentooしてみませんか? IIRC、彼らは物事のヒープを破ったので、それを取り戻さなければならなかった。 –

3

私はパラレルの構成を考えています。これはホストのマルチコアを最大限に活用してチェックを並行して行います。おそらく、autoconfは可能にするためにベクトル化/パイプライン化できるbashスクリプトを生成しなければなりません。