linux内核驱动编程的Makefile详解

目的:uart_drv.c文件编译生成.o文件。

其中:内核源码所在目录是/home/akaedu/allword/driver/LASO.tools/src/linux-2.6.35.7/


Makefile写法

obj-m:=uart_drv.o
KDIR := /home/akaedu/allword/driver/LASO.tools/src/linux-2.6.35.7/
all:

make -C $(KDIR) SUBDIRS=$(PWD) modules

clean:略


也可以一口气写成:

all:(一部全部)
        make modules  \
    -C /home/akaedu/allword/driver/LASO.tools/src/linux-2.6.35.7/ \
        SUBDIRS=$(PWD) \
        uart_dev.o

所有的都是要给linux 中的makefile传参,其实际是make -C的路径是到/home/akaedu/allword/driver/LASO.tools/src/linux-2.6.35.7/的当前目录下找到makefile ,执行的操作是make modules.
其过程是生成一个相应的.mod.c再生成一个.mod.o文件,然后.mod.o文件和.o文件一起共同生成这个.ko文件。

make 的时候会有
 CC [M]  /home/akaedu/drive/chardev/uart_drv.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/akaedu/drive/chardev/uart_drv.mod.o
  LD [M]  /home/akaedu/drive/chardev/uart_drv.ko
[]内部的M就是modules的意思。



你可能感兴趣的:(linux内核驱动编程的Makefile详解)