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}'