美文网首页
makefile make help(如何给Makefile输出

makefile make help(如何给Makefile输出

作者: 码二哥 | 来源:发表于2020-03-05 16:53 被阅读0次

    如何给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

    相关文章

      网友评论

          本文标题:makefile make help(如何给Makefile输出

          本文链接:https://www.haomeiwen.com/subject/mylqrhtx.html