2016-02-26 131 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 –