如何列出Makefile上的所有目标

2020-07-02 00:08:57

Make是编排项目设置和构建过程的伟大工具。它需要一个Makefile,我们在其中定义要执行的目标,例如安装和运行。然后,我们可以使用make install和make run来执行这些任务。

虽然像install这样的目标名称很常见,但当我们必须处理冗长的makefile,并且我们不知道所有可用的目标时,问题就会出现。

希望通过稍微修改一下我们当前的makefile并添加一个新的目标,我们就可以公开这些信息并从终端应用程序访问它。让我们看看怎么做!

首先,我们必须记录每个现有的目标。为此,我们将在目标名称后面添加以##开头的注释。

然后,我们将使用grep和sed命令来获取目标的名称和文档,如以下代码片段所示:

.DEFAULT_GOAL:=help.PHONY:Helphelp:@grep-E';^[a-za-z0-9_-]+:.*?##.*$$';$(Makefile_List)\|sed-n';s/^\(.*\):\(.*\)##\(.*\)/\1\3/p&39;\|column-t-s&。

我们还将设置.PHONY和.DEFAULT_GOAL变量。最后一个将使help成为在没有特定目标的情况下运行make时的默认目标。

现在,如果我们返回到终端应用程序,并运行make,我们将获得记录的目标列表作为输出