【发布时间】:2018-08-15 18:57:47
【问题描述】:
在我的 Makefile 中,我有一些食谱,例如
start-$(PARAM_NAME): ## Comment 1
do some things...
stop-$(PARAM_NAME): ## Comment 2
do some things
我想使用配方帮助,它可以解析文件并打印信息,例如
start-name Starts...
stop-name Stops
PARAM_NAME == 名称 我从具有 key=value 结构的配置文件(如 env 文件)中获得的所有 PARAM_NAME
Makefile 配方
help:
@awk 'BEGIN {FS=":.*?## "} /^[A-z-]*(.\([A-z]*\))?[A-z-]*:.*?## / {printf "\033[36m-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
这与注释一致,分解为名称和注释,但名称中有 start-$(PARAM_NAME)。我想将 $(PARAM_NAME) 替换为其变量(名称)。
【问题讨论】:
-
首先弄清楚如何在makefile之外做任何你想做的事情,然后弄清楚如何在makefile中调用那个脚本。顺便说一句,我不确定你认为
":.*?## "是什么意思,但不管它是什么意思,这并不意味着......
标签: regex awk makefile environment-variables