Linux设备驱动程序 之 Makefile

典型的模块Makefile如下所示;

该Makefile在构造过程中会被读取两次;执行步骤如下:

1. 当Makefile从命令行调用时,它注意倒KERNELRELEASE尚未被设置,此时执行else的KERNELDIR和PWD设置;

2. 然后执行default目标,make首先切换到-C指定的目录KERNELDIR,执行那个目录下的Makefile,KERNELRELEASE定义在KERNELDIR中的Makefile中,执行完之后KERNELRELEASE已被设置;

3. 然后切换回M=指定的PWD目录,第二次读入执行PWD目录的Makefile,此时因为KERNELRELEASE已经被定义了,kbuild也被启动去解析kbuild语法的语句,make将读取else之前的内容,else之前的内容为kbuild语法的语句,指明模块源码中各文件的依赖关系,以及要生成的目标模块名;

4. 根据上述规则开始真正的构建模块;

 

本文链接:Linux设备驱动程序 之 Makefile

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注