0

Makefile複数のサブプロジェクトがあり、ビルドの依存関係を設定しています。

make install今、私はそれらのサブプロジェクトのいくつかを選択的にできるようにしたいのですが、インストールに依存関係を含めたいと思っています。これどうやってするの?

次のように仮定しMakefileます。

lib1:

lib2:

proj1: lib1

proj2: lib2

proj3: lib1 lib2

install_%:  $*
    make -C $* install

install:    $(addprefix install_,$(SUBDIRS) )

そして、コマンドラインから次のようなことができるようにしたいと思います:

make install SUBDIRS=proj1

また

make install SUBDIRS=proj3

私のルールは「proj3」をビルドしてインストールしようとしますが、

  • ライブラリがビルドされていない場合は失敗します。
  • 必要なライブラリが見つかったとしても、それらはプログラムに沿ってインストールされません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

依存プロジェクトのメイクファイルに、依存関係のメイクファイルを含め、依存関係を表現するルールを記述します。

proj3/メイクファイル:

include ../lib1/Makefile
include ../lib2/Makefile

proj3: lib1 lib2
    $(CC) ....

install: proj3 install_lib1 install_lib2
    cp ...

lib1/メイクファイル:

lib1: # ....
    $(CC) ....

install_lib1: # ....
    cp ...
于 2012-09-12T12:57:41.427 に答える