Makefile 只能在发生错误时才执行代码吗?

2024-01-14

在我的 Makefile 中,我有一些检查网络连接的代码。该代码需要相当多的时间来运行,我只想在另一个目标无法构建时运行它。

当前的生成文件

all: files network
    # compile files

files:
    # get files from network resources

network:
    # check for network connectivity
    # echo and return an error if it's not available

执行顺序:

if not network:
    # exit with error
if not files:
    # exit with error
if not all:
    # exit with error

所需的生成文件

在上面的例子中,我想要network目标被“制定”,只有当files目标未能“实现”。

执行顺序:

if not files:
    if not network:
        # exit with error
if not all:
    # exit with error

恐怕递归 make 是你的朋友。

.PHONY: all
all:
    ${MAKE} files || ${MAKE} network

If make files成功,您的工作已完成,退出代码为成功。失败时,退出代码是make network.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Makefile 只能在发生错误时才执行代码吗? 的相关文章

  • @:(符号冒号)在 Makefile 中意味着什么?

    Makefile 中的以下内容有何作用 rule deps 我在制作手册中似乎找不到这个 它的意思是 不要在输出中回显此命令 所以这条规则是说 执行 shell 命令 并且不回显输出 当然是shell命令 是一个空操作 所以这就是说 什么都
  • 如何制作一个makefile只用于编译一些java文件?

    我有三个java文件 名为A java B java C java A将创建对象B B将创建对象C 但我以前从未构建过makefile 有谁可以帮我构建一个 makefile 来编译这三个 java 文件吗 我应该使用什么工具来制作 mak
  • GNU make 的回溯

    有没有办法让 GNU make 打印导致命令失败时执行的目标的 回溯 我经常处理严重混淆的 makefile 同时解决在新系统上构建软件的可移植性问题 这对于 make 来说似乎是一件非常简单的事情 这将极大地帮助调试 但我找不到任何方法来
  • 使用 .INTERMEDIATE 在 makefile 中进行不可靠的并行构建?

    我有一个可以生成多个输出文件的工具 众所周知 在 make 中很难建模 我正在使用食谱GNU Makefile 规则从单个源文件生成一些目标 https stackoverflow com questions 2973445 gnu mak
  • 在 Mac 上更新 Make 版本

    我正在尝试更新 mac 上的 make 版本 但遇到了问题 最小项目依赖项是 4 1 但我的版本似乎是 3 81 我已将 Xcode 更新到最新版本并安装了命令行工具 但它似乎仍然是旧版本 有谁遇到过这个问题或知道解决方法吗 这是我所做的
  • makefile 目标依赖项取决于目标名称

    我有以下规则 SPECIAL file1 file2 o cpp a h CC c CFLAGS lt o 我希望如果 is in SPECIAL then b h已添加到依赖项列表中 有没有办法做到这一点 而不重复规则 您可以单独分配其他
  • 如何确保目标在 makefile 中的所有其他构建规则之前运行?

    我有一个 C 项目 其中包含所有其他 C 文件所依赖的生成文件 我试图在任何其他编译开始之前强制生成并编译该文件 通常它就像将该文件首先放入all 目标 但复杂的是我的 Makefile 也是由构建系统生成的 我只能将片段附加到 Makef
  • makefile 使用目标中定义的变量[重复]

    这个问题在这里已经有答案了 如何使用 make 目标中定义的变量 PHONY foo VAR GLOBAL shell cat tmp global foo echo local gt tmp local VAR LOCAL shell c
  • 错误:-march= 开关的值错误

    我写了一个Makefile 但无法让它工作 我有一个选项应该选择编译到哪个处理器 然而 当我跑步时make从命令行它说 tandex tandex P 6860FX emulators nintendo sdks 3DS SDK HomeB
  • 描述 makefile 中的头文件位置

    在我正在开发的一个新项目中 我有以下目录结构 Project base src bin h Makefile 在我的源文件中 我包含如下内容 include h SomeHeaderFile h 而不是更正确的形式 include Some
  • make:无需为“all”执行任何操作

    我正在通过一个eg pgm 来创建一个make 文件 http mrbook org tutorials make http mrbook org tutorials make 我的文件夹eg make creation包含以下文件 des
  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • 如何将当前目录捕获为 make 变量中的绝对路径名?

    我想在 GNUmake 文件运行期间获取当前目录并将其放入 make 变量中 执行此操作的语法是什么 像这样的东西吗 DIR PWD Um no PWD有时是在您的环境中定义的 因此由 make 继承 但通常不是 你需要 CURDIR DI
  • Makefile:没有规则来制作目标

    我正在关注本指南makefile http www cs colby edu maxwell courses tutorials maketutor 但我根本不理解最后一个例子 并且我无法让我的 makefile 工作 因为我收到了错误ma
  • 为什么 make 会删除我的临时文件?

    我有一个简单的 Makefile PHONY clean PROGRAMS patsubst main cpp example wildcard main cpp all PROGRAMS GCCVERSION shell gcc dump
  • 链接 C 代码时如何判断符号的定义位置

    我面临着链接中特定符号的未定义参考问题 error undefined reference to g queue pop nth 我正在 LOP 和 ARM 平台上工作 我们在两个平台上使用相同的环境 我们的 ARM 构建可以毫无问题地链接
  • 从 makefile 内部传递命令行参数

    我有一个 makefile 我试图从中调用一个可执行文件 该可执行文件需要 5 个参数 我如何从 makefile 传递这些参数 这样做不起作用 run exe arg1 somevalue arg2 somevalue arg3 some
  • 是否可以在 Mac OS X 上构建 FreeGLUT?

    我正在做一些关于 OpenGL 的教程 http www arcsynthesis org gltut Basics Tutorial 2001 html那个使用FreeGLUT http freeglut sourceforge net
  • 从 make 文件中禁用 make 内置规则和变量

    我想根据传递禁用内置规则和变量 r and R options http www gnu org software make manual make html Options Summary从 make 文件内部到 GNU make 也欢迎
  • 我如何知道提供了什么 -j 选项

    In Racket http racket lang org在构建系统中 我们有一个构建步骤 它调用一个可以同时运行多个并行任务的程序 由于这是从调用的make 尊重 j选项make最初是用 然而 据我所知 没有办法获得的价值 j从里面的选

随机推荐

  • 无需 DNS 的通用本地网络名称解析方法?

    我正在为启用 DHCP 的网络设备编写 TCP IP 代码 该设备是否有一种通用的方式可以在野外宣布其主机名 几乎所有网络浏览器 在 osx linux win 上 都可以通过名称访问它 例如 http mydevice index htm
  • PHP 下载 excel 文件损坏

    我有一个 Excel 文件 我希望用户能够从我的服务器下载该文件 我在这里查看了很多问题 但我找不到正确下载文件而不会损坏的方法 我假设它是标题 但我还没有将它们组合起来 这就是我现在所拥有的 在我收到的损坏文件中 我可以看到我想要的电子表
  • 在 JOptionPane 上设置 DocumentFilter

    我在用着 String s JOptionPane showInputDialog 从用户那里得到对问题的答复 该对话框设置为显示响应的文本字段 我想将响应中允许的字符限制为仅字母数字和 是否可以在文本字段上安装 DocumentFilte
  • javascript 文件附加非法字符

    我认为我的 apache 网络服务器有问题 我无法参考jquery js 我收到以下错误 带镀铬 Uncaught SyntaxError Unexpected token ILLEGAL 使用火狐浏览器 Error illegal cha
  • docker重启时数据库丢失

    我在 Windows 10 的 Docker 上运行 influxdb 和 grafana 每次关闭 Docker 时 我都会丢失数据库 这是我所知道的 我尝试过调整保留策略 但对 结果 我可以关闭并重新启动容器 docker compos
  • Spotfire 交叉表中的总计问题

    当我使用FIRST CG1 在 单元格值 中 总计不是求和而是显示结果中的值之一FIRST CG1 请告知我们是否必须始终使用sum XXX 得到总计 简短的回答 是的 如果你想要的话Grand Total是您的数据的总和 将总计应用于不同
  • 如何在 Perl 中压缩多个文件?

    如何 tar 多个目录并附加具有某种模式 如 txt 的文件 并排除某些目录并将某些模式 如 exe 全部排除到单个 tar 文件中 要点是目录数量未知 动态 所以我猜我需要循环遍历 I d use 存档 焦油 http search cp
  • 如何在 Grails 中的控制器中声明 inList 约束?

    谁能告诉我如何声明inListGrails 控制器中的约束 假设我有这门课 class A List hello 我怎样才能添加inList的约束条件为hello List从控制器内部 定义一个约束 其中List属性是否具有针对列表列表进行
  • d3.js 家庭树配偶亮点

    代码链接 http jsfiddle net mj58659094 yKUsQ http jsfiddle net mj58659094 yKUsQ 当单击一个人 节点 时 它也会选择配偶 我只想选择 突出显示 我点击的人 丈夫或妻子或孩子
  • 将 SQL 源文件与 bigquery cli 结合使用

    是否可以在 bigquery CLI 中使用输入文件 bq query lt my query sql 如果您使用的是 unix 或者在 windows 上安装了 cygwin 则可以使用 xargs xargs a my query sq
  • Delphi HelpInsight 以及实施中的总结

    我正在寻找有关带有摘要标签的 Help Insight 的解决方案 帮助 我正在使用 Delphi Tokyo 10 2 Update 2 1 HelpInsight 可以工作并且该函数确实有附加信息 interface type TMyC
  • setTimeout 在 forEach 中不起作用

    我有一个调用函数的 forEach 每次调用之间需要有一个延迟 我已将其放在 forEach 内的 setTimeout 内 它不尊重第一次等待后的超时 相反 它等待一次 然后立即运行 我已将超时设置为 5 秒 并使用控制台进行确认 等待
  • 使用哈希字典的词形还原函数不适用于 R 中的 tm 包

    我想使用大型外部词典 格式如下面的 txt 变量所示 对波兰语文本进行词形还原 我并不幸运 无法使用流行的文本挖掘包来选择波兰语 答案https stackoverflow com a 45790325 3480717 https stac
  • 使用代码接收在动态选择中选择一个选项?

  • Sling Servlet 中的 CQ5 QueryBuilder 参考

    我像这样声明一个 sling servlet Component metatype false Service Servlet class Properties Property name sling servlet paths value
  • Flash CS6 项目面板错误错误#2032:流错误

    卸载 CS5 5 并安装 CS6 后 我的项目选项卡损坏了 这是它显示的内容 Error 2032 Stream Error URL file C Users Eric AppData Local Adobe Flash CS6 en US
  • 使用 Google 地图 API 的地图和移动标记

    我必须写一个演示 这应该像航班内移动地图并需要绘制相同的曲线Polyline between two geo points locations正如你所看到的下图 Even I would not mind switching到其他一些 SD
  • CSS 溢出的属性

    我有两个与 CSS 溢出属性相关的问题或者更确切地说需要澄清 据说 具有非可见溢出值的框将垂直扩展 包围任何浮动的后代盒子 另外关于利润率 据说 对于具有溢出值的盒子 边距永远不会崩溃 比可见的 您能否用相同的实际用途解释这两点 如果您可以
  • mysqli_poll() - 第三个参数有什么用?

    在没有任何文件的情况下超越函数原型 http php net manual en mysqli poll php我正在努力寻找 mysqli poll 函数的第三个参数是什么 int mysqli poll array read array
  • Makefile 只能在发生错误时才执行代码吗?

    在我的 Makefile 中 我有一些检查网络连接的代码 该代码需要相当多的时间来运行 我只想在另一个目标无法构建时运行它 当前的生成文件 all files network compile files files get files fr