巢狀執行MAKE $(MAKE) -C subdir
阿新 • • 發佈:2018-12-25
subsystem:
cd subdir && $(MAKE)
其等價於:
subsystem:
$(MAKE) -C subdir
這句是Makefile的規則:這裡的$(MAKE)就相當於make,-C 選項的作用是指將當前工作目錄轉移到你所指定的位置 。
===============================================================================================
subsystem:
cd subdir && $(MAKE) MAKEFLAGS=
此規則取消了子make執行式的命令列選項(將變數的值賦為空)。
在執行make的同時可以通過命令列來定義一個變數,像上例中的那樣;前邊已經提到過,這種變數是藉助環境“MAKEFLAGS”來傳遞給多級呼叫的子make程序的。其實真正的命令列中的變數定義是通過另外一個變數“MAKEOVRRIDES”來記錄的,變數“MAKEFLAGS”引用此變數,因而命令列中的變數定義就可以被記錄在環境變數“MAKEFLAGS”中被傳遞下去。當不希望將上層make在命令列中定義的變數傳遞給子make時,就可以在上層Makefile中把“MAKEOVERRIDES”賦空來實現(MAKEOVERRIDES=)。
---------------------
作者:rongwenbin
來源:CSDN
原文:https://blog.csdn.net/rongwenbin/article/details/23745059
版權宣告:本文為博主原創文章,轉載請附上博文連結!