guest@blog.cmj.tw: ~/posts $

Makefile Help Message


when you need …

因為還是很常用 Makefile 當作專案的執行指令,但是常常忘記有哪些指令可以使用。最後想到可以在 Makefile 額外加上 help 指令來顯示 help message:

  • 額外的 PHONY 指令 help
  • help 執行額外的 script
    • 透過 printf 來顯示格式化的字串
    • 透過 perl 來找尋特地格式內容 perl -nle 'print $$& if m{^[\w-]+:.*?#.*$$}' $(MAKEFILE_LIST)
    • 使用 awk 將內容正規化取出指令跟註釋 awk 'BEGIN {FS = ":.*?#"} {printf " %-18s %s\n", $$1, $$2}'

最後就得到一個新的 Makefile 指令了

    help:  # show this message
    	@printf "Usage: make [OPTION]\n"
    	@printf "\n"
    	@perl -nle 'print $$& if m{^[\w-]+:.*?#.*$$}' $(MAKEFILE_LIST) | \
    		awk 'BEGIN {FS = ":.*?#"} {printf "    %-18s %s\n", $$1, $$2}'