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

在依赖项目的makefile中,包含依赖的makefile并编写规则来表达依赖:

proj3/Makefile:

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 回答