Makefile 的控制台菜单
项目描述
生成文件菜单
为 Makefile 提供控制台菜单界面。
该系统的规范用途是有一种快速而愚蠢的方法来记录一个想要运行的命令,同时使其非常容易运行,无需记住任何内容。因为我(ab)使用“make”,所以在不使用菜单系统的情况下从命令行运行特定目标也很容易。
当然,没有什么能阻止您使用该工具生成更常规的 Makefile。
描述
这是一个从 Makefile 创建菜单的非常简单的系统。您将 Makefile 注释如下:
# menu title: My title
# menu item: a
.PHONY: hello
hello:
echo hello world
# menu item: b
.PHONY: foo
foo:
echo foo bar
# menu comment: Section 2
# menu item: c
.PHONY: world
world:
echo 42
换句话说,只需在文件中添加一次“# menu title”,然后添加“# menu item: <ch>”即可从 make 文件目标创建命令。然后运行“makefilemenu Makefile”显示:
===== My title =====
a: hello b: foo q: quit
Section 2
c: world
Choice:
您可以选择其中一个命令,并制作相应的目标。请注意,“退出”命令会自动添加以退出程序。如果你不想要它,你可以使用“--quit_cmd ''”来禁用它。在这种情况下,要退出,请按 Control-C 或 Control-D。
常规的“make”使用不会受到干扰,因此您仍然可以在命令行上说“make foo hello”来创建两个目标。
您还可以在 Makefile 中添加一些子句,以便运行 makefilemenu 是默认目标,并且可以简单地执行您的文件:
#!/usr/bin/env -S make -f
# -*- makefile -*-
thisfile := $(lastword $(MAKEFILE_LIST))
.PHONY: menu
menu:
@makefilemenu $(thisfile)
变量
可以使用两种类型的变量设置makefilemenu:环境变量和 Makefile 变量。使用 设置环境变量
# menu envvar,如下所示。
# menu envvar var
# menu envvar d:var
这将添加一个最初未设置的变量var,以及一个用于设置变量的菜单条目。在第一种情况下,菜单项由 调用var,在第二种情况下,它由调用d。
您可以将变量的初始值设置val为如下:
# menu envvar var=val
# menu envvar d:var=val
在这种情况下,如果在命令行上设置了一个空值,它就会被赋予一个空值(如果没有默认值,一个空值将取消设置变量)。
在环境变量被赋予一个值之后,当一个命令被调用时,make 命令被调用并设置了环境变量。
您可以在上面的指令中替换envvar为。在这种情况下,不使用环境变量,而是
调用命令,如下所示:makevar# menumake
make var=val ...
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。