2016-02-26 233 views
0

全部。Makefile依赖于第三方库和cmake

我的主程序使用第三方库A. 主程序使用autoconf和 库A使用cmakefile来构建。 由于将一个框架转换为另一个框架对我来说很痛苦,我想保留两种不同的构建机制。

由于main取决于libA,我做了main依靠libAlibA作为力构建目标。

当我改变的main源文件和mainmakelibA得到cmake并完整保留,因为没有上libA改变, 那么只有main得到建立。

当我改变libA源文件和mainmakelibA得到建立forcefuly。但main的依赖libA计算 之前建立新的libA,链接没有完成。 现在我每次都做两次安全地获取主体。

我该如何改进这个构建? 总结:

  • main取决于libA(A)
  • 当我改变libA源文件后做make,我想建立libA第一和构建main(B)
  • 当我做make在更改main的源文件后,我想只用原始的libA(C)
  • 构建main当我做make没有做任何事情时,我想要没有建设。 (D)

使用当前设置,我无法获得(B)。

任何帮助将深表谢意。

回答

1

好的旧shell脚本(或bat文件,如果你碰巧在Windows上)怎么样?为libA运行cmake,运行make for main,获利!

您可以使用make作为您的批处理引擎,例如,

all: 
     Cmake libA 
     $(MAKE) -f main.mk main 
+0

感谢您的建议。然而,其他同事希望只有“make”能够建立。所以我想在Makefile中做这个 –

+1

你一定可以用make作为你的批处理语言,看看update –