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

Make在多个项目Makefile中安装依赖项,makefile,gnu-make,Makefile,Gnu Make,我有一个包含多个子项目的Makefile,并设置其构建依赖项 现在,我希望能够有选择地进行安装其中的一些子项目,但在安装中包含依赖项。 我该怎么做 假设一个Makefile如下: lib1: lib2: proj1: lib1 proj2: lib2 proj3: lib1 lib2 install_%: $* make -C $* install install: $(addprefix install_,$(SUBDIRS) ) 我希望能够从命令行执行以下操作:

我有一个包含多个子项目的
Makefile
,并设置其构建依赖项

现在,我希望能够有选择地
进行安装
其中的一些子项目,但在安装中包含依赖项。 我该怎么做

假设一个
Makefile
如下:

lib1:

lib2:

proj1: lib1

proj2: lib2

proj3: lib1 lib2

install_%:  $*
    make -C $* install

install:    $(addprefix install_,$(SUBDIRS) )
我希望能够从命令行执行以下操作:

make install SUBDIRS=proj1

我的规则将尝试构建和安装“proj3”,但:

  • 如果未生成任何库,则将失败
  • 即使找到了所需的lib,这些lib也不会随程序一起安装

欢迎提供任何帮助。

在依赖项目的makefile中,包括依赖项的makefiles,并编写规则来表示依赖项:

proj3/Makefile:

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

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

install: proj3 install_lib1 install_lib2
    cp ...
lib1: # ....
    $(CC) ....

install_lib1: # ....
    cp ...
lib1/Makefile:

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

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

install: proj3 install_lib1 install_lib2
    cp ...
lib1: # ....
    $(CC) ....

install_lib1: # ....
    cp ...