模块编译Makefile解析
2015-07-08 20:16
621 查看
《Linux驱动开发详解》上有一个简单的HelloWorld驱动,用到了一个Makefile,如下
1 ifneq ($(KERNELRELEASE),)
2 obj-m := hello.o
3 else
4 KDIR := /usr/src/kernels/2.6.18-238.el5-i686
5 all:
6 make -C $(KDIR) M=$(PWD) modules
7 clean:
8 rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
9 endif
第1行:KERNELRELEASE是在Linux内核源码目录下Makefile里定义的,KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null),即输出Linux版本号。
如果现在是在内核源代码目录运行,则直接继续运行第2行,obj-m: 则表示该文件作为模块编译,编译生成hello.ko。
如果KERNELRELEASE没有被定义则跳到第4行,$(KDIR) 指定了内核源码的路径,M=$(PWD) 指定了该模块文件所在的路径。
、
78行做清理工作。
1 ifneq ($(KERNELRELEASE),)
2 obj-m := hello.o
3 else
4 KDIR := /usr/src/kernels/2.6.18-238.el5-i686
5 all:
6 make -C $(KDIR) M=$(PWD) modules
7 clean:
8 rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
9 endif
第1行:KERNELRELEASE是在Linux内核源码目录下Makefile里定义的,KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null),即输出Linux版本号。
如果现在是在内核源代码目录运行,则直接继续运行第2行,obj-m: 则表示该文件作为模块编译,编译生成hello.ko。
如果KERNELRELEASE没有被定义则跳到第4行,$(KDIR) 指定了内核源码的路径,M=$(PWD) 指定了该模块文件所在的路径。
、
78行做清理工作。
相关文章推荐
- Linux下的USB总线驱动
- Linux/Unix环境下的Make和Makefile详解
- Python实现生成简单的Makefile文件代码示例
- (转)自动生成 Makefile 的全过程详解
- u-boot的Makefile分析
- 关于linux模块驱动简单的Makefile
- 编译单个驱动的Makefile文件。
- makefile完全教程
- Linux内核Makefile文件
- Linux内核的Makefile
- Makefile 文件的相关知识(2)
- 使用AutoMake轻松生成Makefile
- 学习写 Makefile
- makefile之环境变量MAKEFILES
- 一起写 Makefile
- u-boot的Makefile分析435557749
- MakeFile详解
- Linux内核makefile解析
- linux 2.6内核makefile分析
- makefile经典实例