1.我们还需要一些辅助信息的帮助,直接去分析,似乎有些困难。

这里,我把make cfg所执行的操作全部记录下来,然后打开这个文件去查看这个过程。(第2行)

2.打开这个文件,发现总共45条命令,那我截图下来。结合之前的makefile,一一来看看。

2.1第1-4行就不解释了,前面的文章稍微讲了一下。

2.2.第5行,创建目录,前面的文章也提过。

2.3 第6行,前面也提过,两条命令,进入到目录,执行pmoncfg程序。(这个部分晚点讲,因为我也没仔细看)。

2.4 第7行,提示创建一个命令,看到第13行的时候,用到了makedepend。(晚点看)

makedepend命令是我们自己安装的。

$ sudo apt-get install xutils-dev

makedepend [ -DName=Def] [ -DName] [ -IIncludeDir ] [ -YIncludeDir ] [ -a ] [ -fMakeFile ] [ -oObjSuffix ] [ -pObjPrefix ] [ -sString ] [ -wWidth ] [ -v] [ -m ] [ —Options— ] SourceFile ...

makedepend命令按顺序读取每个 soucefile,并且像C预处理器那样对其进行语法分析。

它处理所有的#include、#define、#undef。。。等伪指令来确定在编译中需要用到哪些#include伪指令。

任何#include伪指令都能引用含有其他#include伪指令的文件,并且同样在那些文件中进行语法分析。

SourceFile直接或间接包含每个文件都被makedepend称为一个“相关性”。

2.5 第8行,前面的文章提过,进入到指定的目录,有两个目标,depend和clean

找到depend目标:在libc文件夹中的Makefile.inc文件中。61行看到了提示语句。

2.6 第9行,进入到指定目录

执行该目录中Makefile

2.7 第10行,按照指定,创建目录树。

对应上图中64行目标的执行

2.8 第11行,对应上图的打印提示

2.9 第12行,切换到指定的目录

make命令执行该目录中的Makefile,目标是depend (上图62行指定的)

在该文件中包含tools/scripts/pmon.lib.gmk (该文件确实有depend目标。)

执行这个目标。 这样命令就对上了。

2.10 第13行,执行makedepend命令,(应该不是编译这些c文件),同时可以看到列出来的所有的c文件应该就是最后形成libc.a所需要的所有的c文件。

执行的是make depend这样的命令。

调用的是上图74行的命令。这里相当于把所有的.c文件进行了关联检查。

3.继续之后的指令14-22。

3.1 第14行,离开这个目录

3.2 第15行,创建目录树

3.3 第16行,打印提示

3.4 第17行,进入libm目录 ,并执行该目录中Makefile文件

3.5 第18行,执行make depend

3.6 第19行,离开这个目录

3.7 第20行,创建目录树

3.8 第21行,打印提示

3.9 第22行,进入libz目录 ,并执行该目录中Makefile文件

4. 继续之后的命令23-25

4.1 第23行,执行make depend

4.2 第24行,离开这个目录

4.3 第25行,看这样子是执行了根目录下Makefile.inc中的depend目标。

5.继续之后的代码26

5.1 这一行文件非常多,跟4.3说明的一样。

6. 继续之后的代码27-30

6.1 第27-30行,在libc目录中执行make clean指令

7.继续之后的代码31

8.继续之后的代码32-37

进入libm目录,执行make clean

9.继续38-45.结束

9.1 38-42 行进入libz目录,执行make clean

9.2 44-45 离开指定的目录,上面进行的所有的编译都是在该目录中,所有的.o文件也在该目录中。

以上就是make cfg 的全部过程。

我也是接触不久,难免会有一些错误。欢迎大神指正。

单龙芯3A3000-7A1000PMON研究学习-(7)撸起袖子干-make cfg 所执行的操作(d)相关推荐

  1. 单龙芯3A3000-7A1000PMON研究学习-(14)撸起袖子干-分析代码前的准备工作2

    1.我细细回想一下,感觉要准备的东西很多. 比如体系结构,汇编指令,地址映射,外设.... 然而,光体系结构就复杂到要用n页(官方的)pdf才能说清楚(其实不一定能说清楚,可能还得慢慢去琢磨).这里还 ...

  2. come type6 定义_COMe-B6101龙芯3A3000 COM Express Type6模块

    COMe-B6101是一款以龙芯3A多核处理器和AMD RS780E SB710芯片组为核心,高可靠性和高效能的主板模块.COMe-B6101 内部集成ATI M72-based图像引擎,支持双屏显示 ...

  3. 单龙芯3A3000-7A1000PMON研究学习-(16)撸起袖子干-分析代码前的准备工作3-寄存器

    1.这篇还是稍微介绍一下cpu相关的寄存器. 手册里面说到的寄存器分两种,一种是cpu使用的(汇编中用来存放数据的),另一种是外部设备寄存器(一般用于配置功能,或者读写外部设备数据用的.),在手册中都 ...

  4. 龙梦拿下3万片大单 龙芯电脑年底量产无悬疑

    10月9日,龙芯有关人士通过搜狐博客透露,"龙梦电脑已经有人拿到货,批量生产在11月15日以后,因为量产的芯片11月15日才到."这与龙梦科技此前关于"龙芯电脑年底量产& ...

  5. 单龙芯3A3000-7A1000PMON研究学习-(19)撸起袖子干-再来一杯代码3

    1.start.S包含一个独立的pcitlb.S文件 ##########################################     PRINTSTR("NO TLB cach ...

  6. 单龙芯3A3000-7A1000PMON研究学习-(8)撸起袖子干-make tgt=rom初步分析(a)

    1.make tgt=rom 开始编译了. 在zloader.3a3000_7a目录下的Makefile.inc,指定了我们要的目标. tgt = rom. 所以就是执行73行的rom这个目标. 这里 ...

  7. 单龙芯3A3000-7A1000PMON研究学习-(11)撸起袖子干-make tgt=rom的编译过程

    1. 今天来分析一下makefile,看看如何编译出执行文件pmon的. 先贴几张图,makefile的内容,这是一些依赖关系 图一 图二 图三 图四 图五 2.图一解释 rom这个目标又三个依赖,c ...

  8. 单龙芯3A3000-7A1000PMON研究学习-(12)撸起袖子干-分析代码前的准备工作1

    1.make的过程我说了个大概,大家可以参考一下前面的文章.现在准备分析代码吧,其实这个准备工作内容应该蛮多的.可能后面还要补充. 2.首先找到关键的bin文件啊,就是可以最终下载到flash,能启动 ...

  9. 走进龙芯3A3000(四)安装XFCE4

    我想要安装KDE 我想要qtwebengine的MIPS64实现.曾经读过千里孤坟的<KDE综览>,就深深喜欢上了KDE,当时的版本还是KDE3.后来KDE4发布,千里孤坟又写了<K ...

  10. Linux内核4.10在龙芯3A3000笔记本上的移植

    http://ask.loongnix.org/?/article/66 http://ask.loongnix.org/?/article/67 http://ask.loongnix.org/?/ ...

最新文章

  1. Azure PowerShell (6) 设置单个Virtual Machine Endpoint
  2. PHP——使用PHPMailer实现PHP发邮件功能
  3. 虚拟机和主机文件共享的四种方法
  4. 【职业发展记录-05】地图服务发布-几种方式
  5. wp文件转shp_MapGIS教程:转换shp文件的技巧
  6. 【NLP】依存句法关系符号解释
  7. android 播放pdf文件格式,一个方法告诉你安卓手机如何打开PDF格式文件
  8. 计算机网络中表征数据传输有效性的指标是,表征数据传输有效性的指标是
  9. 如何利用腾讯云服务器搭建个人网站
  10. python安全编程培训费用
  11. 扁平化设计与质感设计: 他们有什么不同?
  12. labelme标记数据后,批量处理json文件,生成标签
  13. android6.0官方镜像,安卓x86 6.0 iso下载
  14. 【最优化】黄金分割法与Fibonacci法
  15. mock.js的使用
  16. Flutter: 千位数加逗号分隔
  17. 使用Quagga在Mininet节点上进行OSPF实验
  18. 目前最新《智能社石川 Nodejs+WebSocket+Html5》
  19. SWUST OJ 之 0594 Maximum Tape Utilization Ratio
  20. 关于cgi的一些总结

热门文章

  1. opendir readdir
  2. 猴子都能看懂的A星算法原理
  3. Msfconsole的基本使用
  4. 手把手教你Magisk安装
  5. 项目:小型局域网的搭建(基础知识+案例)
  6. 店铺淘客软件定制,1688分销软件OEM贴牌配合精细化运营提升店铺流量
  7. 淘宝又出新规,无货源淘宝还能玩吗?
  8. 查看编译war包的jdk版本
  9. 千月影视APP前端搭建_①_注册apicloud账号密码
  10. 判断日期yyyymmdd