2011年6月29日

[CMake] 列出 Makefile 裡的 target

現在大多用 CMake 來產生 Makefile. 如果想知道產生後的 Makefile 中有哪些 target, 可以使用 "make help" 來列出. 假如列出的有個 target 叫作 myTarget, 如果打:
make myTarget
會檢查其相依性先, 然後再執行 myTarget 的相關編譯工作. 因此, 如果遇到相依一大串的 target,
那真的會讓人等到瘋掉.


這時有個快速的方法:
make myTarget/fast
他會跳掉相依性的檢查, 直接執行 myTarget 的相關編譯工作.

如果是用一般的 Makefile, 要怎麼列出所有的 target? [1] 倒是提了不少做法. 其中覺得最受用的是:
make -qp | grep -v '^# ' | grep -v '^[[:space:]]' | grep --only-matching '^.*:'
  1. List goals/targets in GNU make

沒有留言: