Makefile与编译框架
文章平均质量分 95
ashimida@
这个作者很懒,什么都没留下…
展开
-
OP-TEE 编译流程
一、概述:1. OPTEE中的编译目标: OPTEE中需要被编译的目标分为3类:optee core:这里是optee的内核代码(运行在Secure EL1,对应目标为core) optee SDK:分为32/64位, 用来编译用户态TA的开发环境(对应目标为ta_arm32/ta_arm64) optee DTA: DTA(动态TA)也就是optee的用户态TA,其是借助opteeSDK编译的,与前两者编译是分开的(DTA运行在Secure EL0)2. DTA与PTA: ...原创 2021-08-23 23:26:05 · 3079 阅读 · 2 评论 -
Kbuild系统源码分析(五)—模块的编译流程
模块的编译流程在<Kbuild系统源码分析(二)—./Makefile>等文章中已有提及,这里主要梳理思路并记录之前分析中没有记录的一些细节,这里仅以arm64平台内部模块的编译,目标为modules(编译所有模块),CONFIG_MODULES=y,且CONFIG_MODVERSIONS=y的情况为例,后面提及的模块默认指的是这种情况下的模块. 模块的编译规则如下:modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) mo...原创 2021-08-18 23:09:05 · 3765 阅读 · 1 评论 -
Kbuild系统源码分析(三)—./scripts/Makefile.lib
./scripts/Makefile.lib是被include使用的,在Kbuild系统中只在两个脚本中包含了此文件,分别是:./scripts/Makefile.build./scripts/Makefile.modpost 在使用此文件之前通常会先include某个源码目录下的Makefile(见Makefile.build/Makefile.modpos代码),而Kbuild子目录中的Makefile中通常会指定如obj-m/obj-y等一些编译目标,此库函数首先会处理这些目标...原创 2021-08-17 23:39:16 · 954 阅读 · 0 评论 -
Kbuild系统源码分析(四)—./scripts/Makefile.build
./scripts/Makefile.build是通过make -f 而不是在Makefile中include使用的,其本身就是一个make的起始脚本 ./scripts/Makefile.build在内核主要通过一个变量定义的方式使用,此变量定义在Kbuild.include中,所有include此文件的make脚本均可以使用此变量:./scripts/Kbuild.includebuild := -f $(srctree)/scripts/Makefile.build obj 此脚...原创 2021-08-17 23:28:28 · 1957 阅读 · 0 评论 -
Kbuild系统源码分析(二)—./Makefile
上接 <Kbuild系统源码分析(一)—./Makefile>5.对非xxx_config目标的编译5.1:设置./Makefile的默认目标 ./Makefile的开头可知,其默认的编译目标是_all,之前的处理流程中处理了对混合目标,xxx_config等编译的情况,而大部分情况都是走到这里,这里要先设置make的默认目标,在整个./Makefile中,_all的编译仅在这里唯一设置了一次,根据当前是否是编译外部模块,_all中的默认目标有所区别: * 如果编译的是外部模块,那么..原创 2021-08-16 23:40:25 · 1875 阅读 · 0 评论 -
Kbuild系统源码分析(一)—./Makefile
linux内核的Kbuid系统实际上就是make & makefile的一种应用,其起始于内核根目录的./Makefile; 文档记录在内核./Documentation/Kbuild目录下,代码解析如下:1. ./Makefile文件入口1.1:内核版本定义VERSION = 5PATCHLEVEL = 2SUBLEVEL = 5EXTRAVERSION =NAME = Bobtail Squid1.2:默认目标定义## _all是个伪目标,每次运行make ...原创 2021-08-16 23:09:31 · 2427 阅读 · 0 评论