Makefile 在目标体中设置全局变量

2024-03-21

我想通过一个配方设置一个全局变量,然后在另一个配方中引用该变量独立的 recipe

下面的代码是在配方内设置变量的示例代码,但如果在配方外部引用,则变量将保持初始值

ACTIVE = a

switch:
ifeq ($(ACTIVE),b)
    ACTIVE=$(shell echo 'a')
else
    ACTIVE=$(shell echo 'b')
endif

print:
    $(info acitve = $(ACTIVE))

我知道有一些方法可以将特定于目标的变量的值广播到依赖目标,但这不是我想要的。


您可以使用$(eval ...)为此,尽管这几乎总是一个坏主意。我必须假设您的实际情况要复杂得多,因为有许多更好的方法可以完成您在示例 makefile 中实际提供的内容。

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

Makefile 在目标体中设置全局变量 的相关文章

随机推荐

  • 如何每 X 分钟运行一次 cronjob?

    我正在 cronjob 中运行 PHP 脚本 我想每 5 分钟发送一次电子邮件 我当前的 crontab cronjob 10 usr bin php mydomain in cromail php gt dev null 2 gt 1 c
  • 将从 URL 输出的 JSON 保存到文件

    如何将 URL 输出的 JSON 保存到文件中 例如 来自 Twitter 搜索 API 此http search twitter com search json q hi http search twitter com search js
  • 来自 .clone() 的空文件输入

    我正在尝试克隆一个文件输入表单 每次我选择一个文件时then单击 添加更多 克隆文件输入 但它已复制输入中选定的文件
  • 信号 11 SIGSEGV 崩溃 Android

    今天我遇到了一个错误 导致我的 Android 应用程序收到 SIGNAL 11 信号 此错误通常是由于 Android 内部存储未经授权的内存区域访问而发生的 一些可能的场景是Web访问 网络通信 服务器图像下载等 我的是浏览器加载 ur
  • AngularJS 选择的空值

    我找不到优雅的设置方式null值与
  • Azure blob 文件下载链接

    我有一个 blob 已存储在 Azure blob 存储中 使用开发模拟器 它全部保存 我可以在 blob 存储的服务器资源管理器中看到它 file mp3 如果重要的话 然后我在我的网站中链接到它 但是当我单击该链接时 我收到了 206
  • 阻止 Laravel 中的路由会话(自定义按需会话处理)

    我正在使用 laravel 为我的 Android 应用程序构建 API 并将默认会话驱动程序设置为 REDIS 我在这里找到一篇好文章http dor ky laravel prevent sessions for routes via
  • 源文件夹不在Java构建类路径上,正在创建Java包

    我试图在排序下创建一个包合并 但它说 源文件夹不在 Java 构建类路径上 So I right click on sort folder and try to add it to the Java build class path But
  • MSN 是 OpenID 提供商吗?

    MSN 是 OpenID 提供商吗 如果是这样 您知道 URL 是什么样的吗 我正在尝试将 MSN 添加到具有用于登录网站的特殊按钮的提供商列表中 Microsoft 有一个附加到 Windows Live ID 的 OpenID 服务目前
  • Firebase 中 IN 关键字的替代是什么?

    我在 Firebase 中的节点为 users uid phone name 我正在寻找IN执行这里 我想检查我的数据库中存在电话号码列表中的哪些条目 然后获取这些条目 在 SQL 数据库中 等效查询可能是 select phone fro
  • 为什么Webpack的DefinePlugin要求我们将所有内容都包装在JSON.stringify中?

    new webpack DefinePlugin PRODUCTION JSON stringify true VERSION JSON stringify 5fa3b9 BROWSER SUPPORTS HTML5 true TWO 1
  • 在 Hive HQL 中将字符串转换为时间戳

    我有一个像 08 03 2018 02 00 00 这样的字符串 我试图将其转换为时间戳值 我正在使用下面的代码 unix timestamp 08 03 2018 02 00 00 yyyy MM dd T HH mm ss SSSXXX
  • 仅更改所选选项的颜色

    我有一个选择器位于表格单元格中 表格行有颜色 因此使用 CSS 我可以将下拉菜单的背景更改为相同的颜色background color inherit 但是 它会更改所有选项的整个框的颜色 是否可以仅更改所选选项的颜色 如果不使用 CSS
  • Elasticsearch 范围查询和范围过滤的区别

    我想查询某个日期范围内的elasticsearch文档 我现在有两个选择 两个都适合我 两个都测试过 1 范围查询 2 范围过滤器 由于我现在的数据集很小 因此我无法测试它们的性能 这两者有什么区别 哪一种会导致更快的文档检索和更快的响应
  • OpenCv:查找多个匹配项

    我有以下内容 但我不知道如何找到源图像中的所有匹配项 static void Main using var template Cv LoadImage images logo png LoadMode GrayScale using var
  • 如何通过Intent接收int

    我通过 Intent 传递一个 int 但我不知道如何接收它 因为我必须从 OnCreate 方法接收一个 Intent 但如果我将它放在那里 我无法将它与代码其余部分中的另一个 int 进行比较 我在这里发送意图 public class
  • NUnit 与 Debug.Assert 冲突

    我正在使用 NUnit 为我的同事编写的库编写单元测试 他的库包含大量在无效输入时触发的 Debug Asserts 当我编写单元测试并向他的库提供无效输入时 他的 Debug Assert 会弹出一个消息框 抱怨输入错误 我觉得他的库对无
  • 从线程返回值

    在 Python 中 如何让线程将元组或我选择的任何值返回给父级 我建议你实例化一个队列 队列 http docs python org library queue html highlight queue Queue Queue在启动线程
  • Android JUnit4 测试

    我想运行一些 JUnit4 测试 该代码依赖于一些Android库 Android XML解析器 但不创建任何activites等 当我尝试运行测试时 我发现找不到我需要的 Android 类 有没有办法使用 Android 代码运行 JU
  • Makefile 在目标体中设置全局变量

    我想通过一个配方设置一个全局变量 然后在另一个配方中引用该变量独立的 recipe 下面的代码是在配方内设置变量的示例代码 但如果在配方外部引用 则变量将保持初始值 ACTIVE a switch ifeq ACTIVE b ACTIVE