|
|
1
88
这是一种改进的尝试 @nobar's great approach 如下:
奇怪的是,GNU
将以下规则放入GNU的makefile中
重要 :粘贴时, 确保最后一行缩进量为 正好1个实际制表符字符。 (空格键 不 工作) .
注意
排序
结果目标列表是最好的选择,因为
不
如果目标在makefile中的显示顺序是
不
保存。
规则的解释 :
正在运行
|
|
|
2
146
在bash(至少)下,这可以通过制表符完成自动完成:
|
|
|
3
24
我把这两个答案结合起来: https://stackoverflow.com/a/9524878/86967 和 https://stackoverflow.com/a/7390874/86967 做了一些转义,这样就可以在makefile中使用它。
.
|
|
|
4
19
这在很多情况下显然不起作用,但是如果你
|
|
5
12
如果你的bash完成了
这样使用:
|
|
|
6
7
AS mklement0 points out ,GNU make中缺少列出所有makefile目标的功能,而他的答案和其他方法提供了实现这一点的方法。 然而,原文也提到 rake ,谁的 任务 switch执行的操作与只列出rakefile中的所有任务略有不同。Rake只会给你一个有相关描述的任务列表。没有说明的任务 will not be listed . 这使作者既可以提供自定义的帮助描述,也可以忽略某些目标的帮助。 如果你想模仿Rake的行为 descriptions for each target ,有一种简单的方法可以做到这一点:在您想要列出的每个目标的注释中嵌入描述。 您可以将描述放在目标旁边,或者像我经常做的那样,放在目标上方虚假规范旁边,如下所示:
哪个会屈服
您还可以在中找到一个简短的代码示例 this gist 和 here 也是。 同样,这并不能解决在makefile中列出所有目标的问题。例如,如果你有一个大的makefile,可能是生成的,或者是别人写的,并且你想要一个快速的方法列出它的目标而不需要挖掘它,那么这不会有帮助。 但是,如果您正在编写一个makefile,并且您想要一种以一致的、自记录的方式生成帮助文本的方法,那么这种技术可能很有用。 |
|
|
7
4
@nobar's answer 很有帮助地演示如何 使用制表符完成列出makefile的目标 .
|
|
|
8
1
这个对我很有帮助,因为我希望看到make目标所需的构建目标(及其依赖项)。我知道make targets不能以“.”字符开头。我不知道支持哪些语言,所以我使用了Egrep的括号表达式。
|
|
|
9
1
对我来说,这还远远不够干净,但却完成了任务。
我用
对于大多数makefile上的助手脚本来说,这已经足够了。
编辑:已添加
|
|
|
10
1
这里有很多可行的解决方案,但正如我喜欢说的,“如果值得一次,就值得再做一次。” 我对要使用的建议(tab)(tab)进行了升级,但正如一些人所指出的,您可能没有完成支持,或者,如果您有许多包含文件,您可能需要一种更简单的方法来了解目标的定义位置。 我还没有用Sub-makes测试下面的内容……我想它不会起作用。正如我们所知,递归使人认为是有害的。
我喜欢是因为:
说明:
样品输出:
|
|
|
11
1
这是对 jsp 很有帮助的回答( https://stackoverflow.com/a/45843594/814145 )我喜欢这样的想法,不仅得到目标的清单,而且还得到他们的描述。 JSP 的makefile将描述作为注释,我发现经常会在目标的description echo命令中重复。因此,我从echo命令中提取每个目标的描述。 makefile示例:
的输出
笔记:
|
|
|
12
0
另一个对上述问题的回答。 在Macosx上仅使用终端上的cat和awk进行测试
生成文件的输出如下:
在makefile中,它应该是相同的语句,确保使用$$变量而不是$variable来转义变量。 解释 猫 -把里面的东西吐出来 γ -管道解析输出到下一个awk AWK -运行regex,不包括“shell”,只接受“a-z”行,然后打印出$1第一列 AWK -再次从列表中删除最后一个字符“:” 这是一个粗略的输出,你可以用锥子做更多的时髦的事情。尽量避免使用SED,因为它在BSDS变体中并不一致,例如,有些在*nix上工作,但在MacOSX等BSD上失败。 更多 您应该能够将此(经过修改)添加到 制作 ,转到默认的bash completion文件夹/usr/local/etc/bash-completion.d。/ 意思是当你“制造 选项卡选项卡 “…它将基于一行脚本完成目标。 |
|
|
13
-4
不知道为什么之前的答案如此复杂:
|