如何给Makefile文件输出帮助信息呢?
查看每个target
的说明
信息呢?
1、例子:如Makefile文件内容
为:
build:
@echo "docker build -t my-mysql:5.7 ."
rm:
@echo "docker rmi -f my-mysql:5.7"
deploy:
@echo "deploy my-mysql image to kubernetes"
如果我们想查看一下Makefile的帮助文档
,如何做呢
?
2、方式一: 仅仅
列出当前
Makefile里有哪些
target?
build:
@echo "docker build -t my-mysql:5.7 ."
rm:
@echo "docker rmi -f my-mysql:5.7"
deploy:
@echo "deploy my-mysql image to kubernetes"
.PHONY: help
help:
make --print-data-base --question | \
awk '/^[^.%][-A-Za-z0-9_]*:/ \
{ print substr($$1, 1, length($$1)-1) }' | \
sort
将空格改成tab
打印出makefile的帮助信息
这个方式,并不全面,仅仅
是打印出了target
信息,并没有打印出每个target的帮助信息是什么?
3、方式二:列出
target,以及对应
target的描述信息
## build my-mysql image, version 5.7
build:
@echo "docker build -t my-mysql:5.7 ."
## delete my-mysql image
rm:
@echo "docker rmi -f my-mysql:5.7"
deploy:
@echo "deploy my-mysql image to kubernetes"
################################################################################
# Help
################################################################################
TARGET_MAX_CHAR_NUM=20
## Show help
help:
@echo ''
@echo 'Usage:'
@echo ' make target'
@echo ''
@echo 'Targets:'
@awk '/^[a-zA-Z\-\_0-9]+:/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = substr($$1, 0, index($$1, ":")-1); \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf " %-$(TARGET_MAX_CHAR_NUM)s %s\n", helpCommand, helpMessage; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
3.1、如何给Makefile添加帮助
信息
添加帮助信息的步骤
3.2、测试,查看效果
make help
3.3、注意
如果copy过去后,如果格式不对
的话,可能需要将空格
,改成tab
网友评论