make在多个项目Makefile中安装依赖项

时间:2012-09-12 12:45:40

标签: makefile gnu-make

我有一个包含多个子项目的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”,但是:

  • 如果未构建任何lib,则会失败。
  • 即使找到了所需的库,也不会在程序中安装这些库。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

在依赖项目的makefile中,包含依赖项的makefile和写入表达依赖项的规则:

proj3 /生成文件:

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

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

install: proj3 install_lib1 install_lib2
    cp ...

LIB1 /生成文件:

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

install_lib1: # ....
    cp ...