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 只能在发生错误时才执行代码吗? 的相关文章

  • bash 函数保留制表符补全

    我把函数 make color make 1 ccze A in bashrc获得彩色的 make 输出 他的作品很好 但是make用于选择目标的制表符补全功能丢失 有什么方法可以保留函数中命令的制表符完成 或者我可以做其他事情来实现制表符
  • 从 Makefile 中的 C++FLAGS 中删除一个标志?

    我有一个 Makefile 其中包含另一个设置了很多默认值的 makefile 我无法编辑包含的 makefile 并且我想更改 makefile 中 C FLAGS 的值 即使它是在包含的 makefile 中设置的 具体来说 每当 de
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何在使用cmake完成make后打印消息?

    我正在尝试使用 CMake 完成构建过程后打印消息 我只是想在之后通知用户make命令已完成 没有任何错误 我该怎么做 我试过add custom target 但我无法选择何时跑步 另外 我尝试过add custom command 它再
  • 如何调用使用 Define 创建的 GNU make 宏?

    在我的 Makefile 中调用 GREP 的两种方式有什么区别吗 我有什么理由应该使用其中之一 两者似乎产生相同的结果 define GREP word 3 shell echo define FOO 0xfff00100 endef a
  • 使用 .INTERMEDIATE 在 makefile 中进行不可靠的并行构建?

    我有一个可以生成多个输出文件的工具 众所周知 在 make 中很难建模 我正在使用食谱GNU Makefile 规则从单个源文件生成一些目标 https stackoverflow com questions 2973445 gnu mak
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • 如果未设置,则从控制台读取 Makefile 变量

    我正在更新一个从外部源访问某些资源的 Makefile 即存在以下形式的规则 External cvs up 对于不受限制的资源 它可以按预期工作 现在 出现了功能漂移 外部资源需要更复杂的登录 因此规则已更改为与此没有太大不同的内容 Ex
  • 在赋值时计算 Makefile 变量

    在 Makefile 中 我尝试将 shell 命令的结果分配给变量 TMP mktemp d tmp XXXXX all echo TMP echo TMP but make Makefile all 正在回显 2 个不同的值 例如 tm
  • 如何确保目标在 makefile 中的所有其他构建规则之前运行?

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

    编辑 我发现项目属性中有一个选项可以设置自定义生成文件 现在项目构建良好 现在 我偶然发现了如何在单击 运行 时指定要运行的目标可执行文件 代码 块 http www codeblocks org is an IDE https en wi
  • 控制 make 命令的输出不那么冗长,不要回显每个命令

    目前 我正在使用 Makefile 来跟踪项目的所有依赖项和编译 问题是make只是输出它正在执行的所有操作 这使得很难发现 甚至读取 更重要的信息 例如编译器警告 有没有办法控制终端上显示哪些信息 我知道有一个 s沉默的选项make 但这
  • make:仅针对单个目标禁用子目录中的并行构建

    我有一个相当庞大的由自动工具驱动的项目 它位于一个目录树中 该目录树由许多带有子目录的目录组成 它有一个目标check 在每个子目录以及主目录中 执行大量自动化测试 这check目标是递归构建的 并行构建和测试 通过 j选项 make 适用
  • Makefile 和跨平台开发

    我一直在试图弄清楚如何创建一个可以为所有主要操作系统编译的 C 程序 我考虑过使用 makefile 所以我只需要更改目标操作系统 但我有一些问题 我的第一个问题是 我不知道如何更改目标操作系统 以便我可以在一个操作系统上编译 但在所有操作
  • 您如何使编译器行更短?

    通常 当我与其他人一起处理一个项目时 随着时间的推移 编译器在 Makefile 中获取的库路径和包含路径的数量会变得越来越多 此外 路径也可能会变得很长 这是一个例子 g c pipe O2 Wall W DQT BOOTSTRAPPED
  • 将 make 与 msysgit 一起使用

    我在 Windows 7 上使用 msysgit 但它似乎没有附带 make 有没有一种简单的方法可以让 make 在 msysgit 上运行 我找到了一个link to make exe http repo or cz w msysgit
  • Windows 上 gnu make 的 libintl3 和 libiconv2 在哪里,需要在 MinGW 上用 ruby​​ 编译 vim

    我正在尝试为 Windows 运行 gnu make 但它无法运行 因为libint3 dll没找到 果然 http gnuwin32 sourceforge net packages make htm http gnuwin32 sour
  • Makefile:如何正确包含头文件及其目录?

    我有以下 makefile CC g INC DIR StdCUtil CFLAGS c Wall I INC DIR DEPS split h all Lock o DBC o Trace o o cpp DEPS CC o lt CFL
  • 从 makefile 内部传递命令行参数

    我有一个 makefile 我试图从中调用一个可执行文件 该可执行文件需要 5 个参数 我如何从 makefile 传递这些参数 这样做不起作用 run exe arg1 somevalue arg2 somevalue arg3 some
  • 如何处理GNU make中的子make错误?

    我在 Makefile GNU 中使用子 make 但每当子 make 失败时 主 make 都会继续成功运行 我希望每当我的子 make 失败时我的主 Makefile 都会失败 我怎么做 all pushd STA DIR make c

随机推荐

  • 无需 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