linux makefile 框架分析1
主Makefile
[17] MAKECMDGOALS: 命令行传入的构建对象
[22] __all : 默认目标
[40] sub_make_done: 存在的意义,构建框架存在递归调用的行为,而对于有全局影响的一些变量和规则需要在递归之前处理,因此需要通过 sub_make_done 完成对这些内容的保护,只在第一次进入主makefile的时候才会运行
MAKEFLAGS: 添加make配置,比如 -rR(禁用隐式规则)
V: 配置构建输出的打印的量级,KBUILD_VERBOSE
O: 指定输出目录, KBUILD_OUTPUT,
abs_objtree: 目标输出路径,如果没有指定O,就是make当前目录CURDIR,(注意:-C 指定目录,CURDIR为-C所指定的目录;-f 指定makefile,CURDIR还是当前make指令运行目录)
need-sub-make: 如果abs_objtree 不等于 CURDIR(make O=xxx),则该变量置1
abs_srctree: 源码目录,即主Makefile所在目录
如果 abs_objtree 和 ads_srctree不等(make -f path/to/makefile),need-sub-make = 1,并且 MAKEFLAGS += --include-dir=$(abs_srctree): 指定一个目录搜索makefile
this-makefile: 最新的make 解析的makefile,即主Makefile
[177] sub_make_done = 1, 且export: 保证只运行一次
[179] 如果 need-sub-make = 1, 触发sub_make, 使用绝对路径,在主makefile 路径构建主makefile
make -C $(abs_objtree) -f $(abs_srctree)/Makfefile $(MAKECMDGOALS)
[191] end sub_make_done
[194] ifeq need-sub-make = 0, 即没有触发sub-make,通过这个可以解决触发sub-make时,主makefile的后面部分只会在sub-make中执行,而第一次进入主makefile时后面部分直接跳过,解决递归引起的重复执行问题
见linux makefile框架分析2
[1906] end need-sub-make
linux makefile 框架分析1相关推荐
- linux makefile 框架分析2
[194] ifeq need-sub-make = 0 该篇主要分析这部分主makefile内容 [1906] end need-sub-make [211] C: 源代码chec ...
- linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析
驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...
- Linux v4l2框架分析
背景 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 概述 V4L2(Video for Linu ...
- contiki makefile框架分析 contiki学习之一
在linux下的工程编译,基本都可以使用makefile这个工具来完成.Contiki OS亦如此,下面分析contiki整个Makefile的框架,对makefile的具体内容暂不做分析.本文依赖于 ...
- Android/Linux Thermal框架分析及其Governor对比
https://www.cnblogs.com/arnoldlu/p/6388151.html 图表 1 Thermal框架 随着SoC性能的快速提升,功耗也极大提高,带来的负面影响是SoC的温度提高 ...
- Linux USB驱动框架分析 【转】
转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...
- linux v4l2系统详解,Linux摄像头驱动学习之:(一)V4L2_框架分析
这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux ...
- OS相关驱动 Linux USB驱动框架分析
初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了.好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发 ...
- java连接linux服务器执行shell命令(框架分析+推荐)
java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...
最新文章
- Python-EEG工具库MNE中文教程(12)-注释连续数据
- 鸿蒙9月11日,鸿蒙2.0版9月11日正式发布,华为将迎来新的突破,具有历史意义!...
- Netfilter深度解剖
- 【手把手教学】基于Maven构建方式使用Mybatis generator自动生成
- php存密码,php 登录验证的代码(基于文件保存的密码)
- css鼠标移入线条延中心伸长,jquery鼠标悬浮,显示动态延伸线条,如何在鼠标移开后依然让线条元素延伸到终点...
- c语言表达式求值的空间复杂度,373-时间复杂度(表达式求值)
- C++ std::pair<,> 是什么怎么用
- 工具使用-----Jmeter-脚本的录制
- 为了云计算的安全需要自己控制加密密钥
- Java项目:SSM网吧计费管理系统
- 泛微云桥任意文件读取漏洞[尽快升级]
- Ubuntu18.04中cURL 77 错误:error setting certificate verify locations
- 机电学生写给十年后自己的一封信
- 【计算机网络】第九章:应用层
- 蓄热式加热炉燃烧技术
- 原神3.2剧情服搭建教程
- EasyDSS提示所配置路径不能包含中文的处理方法
- 大唐:我家阁楼通公主府(二)
- java 根据日期算星座_Hive自定义函数实现通过日期计算星座