美文网首页
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输出

    如何给Makefile文件输出帮助信息呢?查看每个target的说明信息呢? 1、例子:如Makefile文件内容...

  • Makefile入门(二):MakeFile介绍

    makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程...

  • Make

    make 目标 顶层 Makefile 作为入口, 来调用其他 makefile, 顶层 makefile 一般有...

  • Makefile学习笔记

    Makefile学习笔记 学习Makefile的资料 《跟我一起写makefile》 《GUN make manu...

  • makefile | makefile语法基础

    makefile是为make指令提供信息的文件。make指令直接解析makefile。因此我们从make指令的起源...

  • Makefile简介

    Makefile是干嘛的? 就像dockerfile之于docker,makefile之于make.....mak...

  • Makefile的基本使用

    Makefile的基本使用 首先需要有一个Makefile文件然后执行make即可完成所有的Makefile中定义...

  • Makefile的目标

    Makefile的目标 Makefile为什么需要伪目标 这里的目标是指makefile文件中的目标,不是Make...

  • Linux 中软件安装原理

    configure 检查程序运行环境,以及程序依赖,生成makefile文件 make 根据makefile 文...

  • darknet在Linux上编译

    直接在项目目录下make,如果不成功就make clean后修改makefile后重来。注意makefile中的a...

网友评论

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

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