ms-tpm-20-ref构建脚本说明

news2024/12/24 9:48:42

bootstrap

这个脚本主要做了以下几件事情:

1. 设置环境变量:将 AUTORECONF 环境变量设置为 autoreconf,如果该变量已经定义,则不会进行重新设置。

2. 生成文件列表:通过 src_listvar 函数生成各个目录下的源文件列表,并将结果保存到 src.mk 文件中。这些文件列表将在后续的构建过程中使用。

3. 设置构建环境:运行 ${AUTORECONF} --install --sym 命令来设置构建环境。autoreconf 是一个工具,用于自动生成构建系统所需的文件,例如 configure 脚本和 Makefile.in 文件。

4. 设置默认的供应商字符串:通过 sed 命令修改 tpm/include/VendorString.h 文件,将其中被注释的符号定义取消注释,以便在构建过程中使用。

总的来说,这个脚本主要是为了准备构建所需的文件列表和环境,以及设置默认的供应商字符串。具体的构建过程可能需要进一步的脚本或命令来完成。

configure.ac

这段输入是一个 configure.ac 文件,用于生成自动化构建系统的配置脚本。它包含了一系列的宏和命令,用于配置构建过程中的各种选项和依赖。

以下是这个 configure.ac 文件中的一些关键部分:

- AC_INIT 宏:指定了项目的名称、版本号、问题报告链接和项目的主页链接。

- AC_CONFIG_MACRO_DIR 宏:指定了宏文件的目录,这些宏文件用于自定义自动化构建过程中的一些行为。

- AC_PROG_CC、AC_PROG_LN_S、AC_PROG_RANLIB 宏:用于检查并设置编译器、符号链接和静态库工具。

- AM_INIT_AUTOMAKE 宏:初始化 Automake,指定了一些选项,如 foreign 和 subdir-objects。

- AC_CONFIG_FILES 宏:指定了生成的配置文件,这里只有一个 Makefile。

- AC_SUBST 宏:用于将变量的值传递给生成的配置文件。

- AC_ARG_ENABLE 宏:用于定义一个命令行选项 --enable-usedeviceid,根据选项的值来设置一些变量。

- PKG_CHECK_MODULES 宏:用于检查和引入外部依赖库。

- AX_PTHREAD 宏:用于检查并引入 pthread 库。

- AC_DEFINE 宏:用于定义预处理器宏,这里定义了一些加密算法相关的宏。

- ADD_COMPILER_FLAG 和 ADD_LINK_FLAG 宏:用于添加编译器和链接器的选项。

- AC_OUTPUT 宏:生成最终的配置脚本。

这个 configure.ac 文件的目的是根据项目的需求和依赖配置构建系统,生成适合项目的 Makefile 和配置脚本。

 

flags.m4

AC_DEFUN([ADD_COMPILER_FLAG],[
    AX_CHECK_COMPILE_FLAG([$1],[
        EXTRA_CFLAGS="$EXTRA_CFLAGS $1"
        AC_SUBST([EXTRA_CFLAGS])],[
        AS_IF([test x$2 != xrequired],[
            AC_MSG_WARN([Optional CFLAG "$1" not supported by your compiler, continuing.])],[
            AC_MSG_ERROR([Required CFLAG "$1" not supported by your compiler, aborting.])]
        )],[
        -Wall -Werror]
    )]
)

这段输入是一个宏定义 ADD_COMPILER_FLAG,用于向编译器添加编译选项。

该宏接受两个参数:$1 是要添加的编译选项,$2 是一个可选参数,用于指定该选项是否是必需的。

宏的主要功能是使用 AX_CHECK_COMPILE_FLAG 宏来检查编译器是否支持指定的选项。如果支持,将该选项添加到 EXTRA_CFLAGS 变量中,并通过 AC_SUBST 将其传递给生成的配置文件。如果不支持,根据 $2 的值决定是发出警告还是报错。

如果没有指定 $2 的值,则默认为 -Wall -Werror,即将 -Wall 和 -Werror 选项添加到编译器选项中。

这个宏的作用是方便在自动化构建过程中向编译器添加额外的编译选项,以满足项目的需求或要求。

Makefile.am

这段输入是一个 Makefile,用于构建项目的目标文件和可执行文件。

以下是这个 Makefile 中的一些关键部分:

- include src.mk:包含了之前生成的 src.mk 文件,该文件包含了源文件的列表。

- PLATFORM_INC、SIMULATOR_INC、TPM_INC:定义了各个目录的头文件路径。

- libplatform、libtpm、tpm2_simulator:定义了生成的静态库和可执行文件的名称。

- bin_PROGRAMS、noinst_LIBRARIES:定义了要生成的可执行文件和静态库。

- Platform_src_libplatform_a_CFLAGS、Platform_src_libplatform_a_SOURCES:定义了生成 libplatform.a 静态库的编译选项和源文件列表。

- Simulator_src_tpm2_simulator_CFLAGS、Simulator_src_tpm2_simulator_LDADD、Simulator_src_tpm2_simulator_SOURCES:定义了生成 tpm2-simulator 可执行文件的编译选项、依赖库和源文件列表。

- tpm_src_libtpm_a_CFLAGS、tpm_src_libtpm_a_SOURCES:定义了生成 libtpm.a 静态库的编译选项和源文件列表。

这个 Makefile 的目的是根据源文件列表和依赖关系来编译和链接项目的目标文件和可执行文件。具体的编译和链接规则可能需要进一步的规则和命令来完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/912014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易云维智慧实验室综合管理平台以技术赋能和数据驱动,助力实验室设备集中管控和能耗管理

目前,我国实验室存在纸质记录多、信息孤岛、不可追溯、安全隐患多、运行能耗高、管理难等问题;同时,国内LIMS实验室信息系统专业化程度低,功能结构单一,不能满足现阶段实验室管理需要;构建一个基于物联网技…

macOS M1使用TensorFlow GPU加速

本人是在pycharm运行代码,安装了tensorflow版本2.13.0 先运行代码查看有没有使用GPU加速: import tensorflow as tf# Press the green button in the gutter to run the script. if __name__ __main__:physical_devices tf.config.list_physical_dev…

Leetcode每日一题:849. 到最近的人的最大距离(2023.8.22 C++)

目录 849. 到最近的人的最大距离 题目描述: 实现代码与解析: 双指针 原理思路: 849. 到最近的人的最大距离 题目描述: 给你一个数组 seats 表示一排座位,其中 seats[i] 1 代表有人坐在第 i 个座位上&#xff0c…

jQuery Editable Select可搜索下拉选项框

前言 可搜索的下拉选项框 源码地址:https://github.com/indrimuska/jquery-editable-select 可搜索的下拉选项框 引入依赖 <script src"//code.jquery.com/jquery-1.12.4.min.js"></script> <script src"//rawgithub.com/indrimuska/jquery…

CentOS中Oracle11g进程有哪些

最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题&#xff0c;专门看了下正常Oracle数据库启动后的进程有哪些&#xff0c;查阅资料了解了下各进程的作用&#xff0c;记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …

数据结构——线性数据结构(数组,链表,栈,队列)

文章目录 1. 数组2. 链表2.1. 链表简介2.2. 链表分类2.2.1. 单链表2.2.2. 循环链表2.2.3. 双向链表2.2.4. 双向循环链表 2.3. 应用场景2.4. 数组 vs 链表 3. 栈3.1. 栈简介3.2. 栈的常见应用常见应用场景3.2.1. 实现浏览器的回退和前进功能3.2.2. 检查符号是否成对出现3.2.3. 反…

“解放 Arweave“优惠:4EVERLAND的无缝上传教程

为了进一步展示 Arweave 的能力&#xff0c;4EVERLAND 骄傲地推出了“解放 Arweave”活动。我们认识到 Arweave 在数据完整性、抗审查性以及长期保存方面的无与伦比的优势&#xff0c;因此我们与这个去中心化的存储巨头建立了强大的集成。 克服了过去与加密货币支付逻辑相关的…

2023网络建设与运维模块三:服务搭建与运维

任务描述: 随着信息技术的快速发展,集团计划2023年把部分业务由原有的X86架构服务器上迁移到ARM架构服务器上,同时根据目前的部分业务需求进行了部分调整和优化。 一、X86架构计算机操作系统安装与管理 1.PC1系统为ubuntu-desktop-amd64系统(已安装,语言为英文),登录用户…

半导体市场遇寒冬,“热停机”成为新趋势 | 百能云芯

半导体制程市况不佳&#xff0c;晶圆代工商降价效果差。为削减成本&#xff0c;韩国主要代工厂如三星&#xff0c;启用“热停机”策略。此趋势蔓延至联电、世界先进、力积电等台湾代工厂&#xff0c;揭示短期订单前景黯淡&#xff0c;制程市况严峻。 据韩媒&#xff0c;三星、K…

console的几个常用用法

console.log() 其一、主要表示&#xff1a;向 Web 控制台输出一条消息; 其二、而具体是什么信息就以传递的实参为准&#xff0c;然后就是在控制台就能显示自己传递参数的结果&#xff1b; console.log([1,3,5,7]) // 输出 [1, 3, 5, 7] console.log({}) // 输出 {} conso…

*看门狗原理及注意事项

1.看门狗的作用是&#xff1a;当单片机因为软硬件问题或者外界干扰导致死机时&#xff0c;可以自动复位单片机&#xff0c;使系统重新正常工作。 当电脑的系统死机了&#xff0c;我们可以人为手动的进行重启&#xff0c;使电脑重新正常工作。但当火星的单片机系统死机了&#x…

无人机电力巡检:探索电力设施维护的新模式

电力巡检一直是电力行业中关键的环节&#xff0c;它的目的是确保电力设施的正常运行和安全稳定&#xff0c;对提高电力设施的可靠性、确保电力供应的稳定性和提高电力企业的管理水平具有重要的意义。传统的电力巡检方式通常采用人工的方式进行&#xff0c;这种方式存在很多的问…

Win10c盘满了怎么清理?快速清理,5个方法!

“快救救孩子吧&#xff01;我的电脑是win10系统的&#xff0c;现在c盘满了&#xff0c;根本没法继续使用电脑了。怎么才能快速的释放内存呢&#xff1f;非常着急&#xff01;感谢大家&#xff01;” C盘是Windows系统中重要的分区&#xff0c;当其存储空间满了&#xff0c;可能…

C++核心编程——类和对象(二)、友元、多态

C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空类&#xff08;类里面是空的&#xff09;&#xff0c;空对象占用内存空间为&#xff1a;1字节。 静态成员变量&#xff0…

Simulink仿真模块 - Random Number

Random Number模块的功能是生成正态分布的随机数。它所在的库为: Simulink / Sources 如图所示: Random Number 模块可生成正态分布的随机数。要生成均匀分布的随机数,可以使用 Uniform Random Number 模块。两个模块都使用正态(高斯)随机数生成器(v4:rng 函数…

eSIM是未来?谷歌Pixel8取消物理卡槽,将于今年秋季推出

根据近期的报道&#xff0c;谷歌计划在今年秋季推出的Pixel 8系列手机上取消物理SIM卡卡槽&#xff0c;而是仅支持使用eSIM卡方案。这意味着用户将不再需要插入实体SIM卡来激活移动网络服务&#xff0c;而是可以通过在手机设置中添加和激活eSIM卡来实现。 这一步骤将更加简化手…

视觉SLAM:一直在入门,如何能精通,CV领域的绝境长城,

目录 前言 福利&#xff1a;文末有chat-gpt纯分享&#xff0c;无魔法&#xff0c;无限制 1 什么是SLAM&#xff1f; 2 为什么用SLAM&#xff1f; 3 视觉SLAM怎么实现&#xff1f; 4 前端视觉里程计 5 后端优化 6 回环检测 7 地图构建 8 结语 前言 上周的组会上&…

数字孪生流域共建共享相关政策解读

当前数字孪生技术在水利方面的应用刚起步&#xff0c;2021年水利部首次提出“数字孪生流域”概念&#xff0c;即以物理流域为单元、时空数据为底座、数学模型为核心、水利知识为驱动&#xff0c;对物理流域全要素和水利治理管理活动全过程的数字映射、智能模拟、前瞻预演&#…

湘潭大学 湘大 XTU OJ 1140 平衡三进制1 题解(非常详细)

链接 1140 题面 题目描述 平衡三进制分别使用字符-,0,1表示-1,0,1。下表表示从0到10的十进制数对应的平衡三进制的值。 十进制平衡三进制001121-31041151--61-071-1810-910010101 现在给你一个关于平衡三进制的串&#xff0c;请将其转成对应的十进制数。 输入 第一行是一…

线性代数的学习和整理3:什么是标量向量和张量?什么是向量空间?

目录 1 标量和向量 1.1 标量 scalar 1.2 向量vector /矢量 1.2.1 什么是向量 1.2.2 向量如何表示&#xff1f;在向量空间的表示方法 因此这种向量空间特点是 1.3 ​矩阵(matrix) 1.3.1 矩阵和向量的关系 1.3.2 方阵 1.4 ​张量(tensor)&#xff1a;标量&#xff0c;…