7

ビルドとメンテナンスを容易にするために、いくつかのコンポーネント (liba、b、c、d) に分割された大規模なプロジェクト (マスター) を手元に持っています。パッケージ全体をビルドする場合、すべてのサブコンポーネントを順番にビルドする必要があり、これらのパッケージの一部は相互に依存しています。

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

--with-liba=internal または同様のフラグを b の構成スクリプトに渡すことで、この問題を修正できます。ただし、このような autoconf のフラグ パッシングに関するドキュメントは見つかりませんでした。当分の間、私は master に非常に長いカスタム Makefile を持っています。これは、サブディレクトリを持つ autoconf/automake とまったく同じことを行いますが、依存関係を少し並べ替えて、代わりに (configure liba) => (configure b) => (build liba) => (ビルド b)、順序は (configure liba) => (build liba) => (install liba) => (configure b) => (build b) です。

標準の autoconf/automake サブディレクトリを使用してこれをリファクタリングする方法はありますか?

4

1 に答える 1

3

このメールが役立つかもしれません。

于 2011-09-27T06:17:41.910 に答える