make -C M
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
- -C 选项的作用是指将当前工作目录转移到你所指定的位置。(一般是转到内核目录下,执行里面的makefile)
- “M=”选项的作用是,当用户需要以某个内核为基础编译一个外部模块的话,需要在make modules 命令中加入“M=dir”,
程序会自动到你所指定的dir目录中查找模块源码,将其编译,生成KO文件。这样模块就不会被编进内核中,而是独立出来。
新的内核模块编程中的make命令里有个M选项,如下:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
M=$(PWD) 意思是返回到当前目录继续读入、执行当前的Makefile。
这个M是kbuild的东西呢,还是make本来自己就有的东西呢?
按理说,它是make的一个参数,应该是make的东西,但是make的doc里又找不到,
如果是kbuild里的东西,它应该怎样来实现呢?经查证这个M是内核根目录下的Makefile中使用的变量。
M是makefile脚本中的一个变量(variable)

浙公网安备 33010602011771号