linux内核Makefile的简单分析

来源:互联网 发布:qt多进程编程视频 编辑:程序博客网 时间:2024/06/06 23:52
                                                                           Makefile 总结
1)配置文件.config中定义了一系列的变量,Makefile将结合它们来决定哪些文件被编译进内核。哪些文件被编译成模块。涉及哪些子目录。
2)顶层Makefile和arch/$(ARCH)/Makefile决定更目录下哪些子目录,arch/$(ARCH)目录下哪些文件和目录被编译进内核。
3)最后,各级子目录下的Makefile决定所在目录下哪些文件将被编译进内核,哪些文件将被编译进内核,哪些文件将编译成模块(即驱动程序),进入哪些子目录继续调用它们的Makefile。
4)顶层Makefile和arch/$(ARCH)/Makefile设置了可以影响所以文件的编译,连接选项:CFLSGS,AFLAGS,LDFLAGS,ARFLAGS.
5)各级子目录下的Makefile中可以设置能够影响当前目录下所有文件的编译,连接选项:EXTRA_CFLAGS,EXTRA_AFLAGS,EXTRA_LDFLAGS,EXTRA_ARFLAGS;还可以设置可以影响某个文件的编译选项:CFLAGS_$@,AFLAGS_&@。
6)顶层Makefile按照一定的顺序组织文件。根据连接脚本arch/$(ARCH)/kernel/vmlinux.lds 生成内核映像文件vmlinux。