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)

posted @ 2020-02-28 05:34  friedCoder  阅读(509)  评论(0)    收藏  举报