主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相关推荐

  1. linux makefile 框架分析2

    [194] ifeq need-sub-make = 0          该篇主要分析这部分主makefile内容 [1906] end need-sub-make [211] C: 源代码chec ...

  2. linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析

    驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...

  3. Linux v4l2框架分析

    背景 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 概述 V4L2(Video for Linu ...

  4. contiki makefile框架分析 contiki学习之一

    在linux下的工程编译,基本都可以使用makefile这个工具来完成.Contiki OS亦如此,下面分析contiki整个Makefile的框架,对makefile的具体内容暂不做分析.本文依赖于 ...

  5. Android/Linux Thermal框架分析及其Governor对比

    https://www.cnblogs.com/arnoldlu/p/6388151.html 图表 1 Thermal框架 随着SoC性能的快速提升,功耗也极大提高,带来的负面影响是SoC的温度提高 ...

  6. Linux USB驱动框架分析 【转】

    转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...

  7. linux v4l2系统详解,Linux摄像头驱动学习之:(一)V4L2_框架分析

    这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux ...

  8. OS相关驱动 Linux USB驱动框架分析

    初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了.好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发 ...

  9. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

最新文章

  1. Python-EEG工具库MNE中文教程(12)-注释连续数据
  2. 鸿蒙9月11日,鸿蒙2.0版9月11日正式发布,华为将迎来新的突破,具有历史意义!...
  3. Netfilter深度解剖
  4. 【手把手教学】基于Maven构建方式使用Mybatis generator自动生成
  5. php存密码,php 登录验证的代码(基于文件保存的密码)
  6. css鼠标移入线条延中心伸长,jquery鼠标悬浮,显示动态延伸线条,如何在鼠标移开后依然让线条元素延伸到终点...
  7. c语言表达式求值的空间复杂度,373-时间复杂度(表达式求值)
  8. C++ std::pair<,> 是什么怎么用
  9. 工具使用-----Jmeter-脚本的录制
  10. 为了云计算的安全需要自己控制加密密钥
  11. Java项目:SSM网吧计费管理系统
  12. 泛微云桥任意文件读取漏洞[尽快升级]
  13. Ubuntu18.04中cURL 77 错误:error setting certificate verify locations
  14. 机电学生写给十年后自己的一封信
  15. 【计算机网络】第九章:应用层
  16. 蓄热式加热炉燃烧技术
  17. 原神3.2剧情服搭建教程
  18. EasyDSS提示所配置路径不能包含中文的处理方法
  19. 大唐:我家阁楼通公主府(二)
  20. java 根据日期算星座_Hive自定义函数实现通过日期计算星座

热门文章

  1. 解决新版本chrome浏览器跨域请求拦截
  2. C#封装-里氏替换原则
  3. TCP/IP编程之accept函数详解
  4. 计算机立项建设博士点,学校博士点立项建设学科工作稳步推进
  5. 单片机的中断系统(一)
  6. 短信验证登录淘宝web页面(selenium+Chromedriver)
  7. 数据采集的可靠性和准确性
  8. 6-2 人口统计 (5 分)java
  9. 法国大面包mimikatz使用方法
  10. HCIA——ACL访问控制列表