将V = s Flage传播到所有子makefile

时间:2015-12-22 16:10:19

标签: c module makefile linux-kernel

当我使用make构建内核模块时,我会得到这种日志

CC[M] module1
CC[M] module2
CC[M] module3
CC[M] module4

即仅编译或链接有关当前正在处理的任何模块的信息。

我需要知道哪些命令实际编译模块源代码的完整信息,这些命令中使用的flags等等。例如

gcc -Wall abcd.c 

我甚至通过设置V=sV=1-n-d来检查它,但无法获得我想要的内容。

请告诉我如何让V=s在每个后续的makefile中传播。它可以通过exporting来完成,具体如何?

由于

1 个答案:

答案 0 :(得分:2)

有两种方法:

  1. 您可以使用“make V=1”构建模块以打印详细消息。
  2. 您也可以将“export KBUILD_VERBOSE=1”行放入Makefile。
  3. 以下是makefile的一个示例:

    TARGET  :=sysfs-sample
    
    export KBUILD_VERBOSE=1
    
    obj-m += $(TARGET).o
    
    $(TARGET)-objs  := main.o
    
    MODULE_DIR  := "$(PWD)"
    
    all:
        CROSS_COMPILE= ARCH=x86 make -C /lib/modules/$(shell uname -r)/build M=$(MODULE_DIR) modules 
    
    clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(MODULE_DIR) clean