Makefile中的MAKECMDGOALS


 

make 在執行時會設置一個特殊變量 -- "MAKECMDGOALS" ,該變量記錄了命令行參數指定的終極目標列表,沒有通過參數指定終極目標時此變量為空。該變量僅限於用在特殊場合(比如判斷),在 Makefile 中最好不要對它進行重新定義。

下面通過一個實例來說明此變量的意思,設一 Makefile 內容如下:

  1. ifeq ("$(MAKECMDGOALS)","are you ok cmdgoals")
  2. who="you"
  3. endif
  4. are:
  5.         @echo "are"
  6. you:
  7.         @echo "you"
  8. ok:
  9.         @echo "ok"
  10. cmdgoals:
  11.         @echo "MAKECMDGOALS: $(MAKECMDGOALS)"
  12.         @echo "who are $(who)"


運行輸出:

[beyes@SLinux tempa]$ make are you ok cmdgoals
are
you
ok
MAKECMDGOALS: are you ok cmdgoals
who are you


我們在命令行中同時指定了 "are" , "you", "ok", 以及 "cmdgoals" 這 4 個目標。這些目標的名字都會傳入 MAKECMDGOALS 中。

在其中我們可以學習幾個命令:

1.判斷

ifeq ("$(MAKECMDGOALS)","are you ok cmdgoals")
who="you"
endif

2.echo

 @echo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM