Makefile 实战

来源:互联网 发布:办公软件官方下载 编辑:程序博客网 时间:2024/05/16 04:39

最近在做新项目的预研,主要是用bcm96xx方案做二次开发。在构建最小文件系统的时候主要遇到了Makefile的调试难题。

调试的内容包括:

1、变量的值;

2、执行流程;

3、内嵌Makefile的调用。

 

首先,我们回顾一下Makefile执行机制:

我们要明白一点:makefile是一个脚本,所以会解析执行;

GNU的make工作时的执行步骤入下:(想来其它的make也是类似)

    1、读入所有的Makefile。
    2、读入被include的其它Makefile。
    3、初始化文件中的变量。
    4、推导隐晦规则,并分析所有规则。
    5、为所有的目标文件创建依赖关系链。
    6、根据依赖关系,决定哪些目标要重新生成。
    7、执行生成命令。

1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把其展开在使用的位置。但make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。

Makefile的基本调试:

1、在有依赖性的地方直接使用echo 输出变量值和调试信息。

2、Makefile 命令前不要加@。

举一个例子:

OBJ =test

all:

 

 

明天继续……



 

 

原创粉丝点击