makefile - 如何处理kconfig文件

时间:2014-05-22 21:41:08

标签: compiler-construction linux-kernel makefile linux-device-driver kernel-module

我偶然发现了site关于Linux下USB视频采集卡的问题,我试图编译找到的here代码。我读过有关makefile的内容,但这个让我感到困惑,因为它太短了:

usbtv-y := usbtv-core.o \
    usbtv-video.o

obj-$(CONFIG_VIDEO_USBTV) += usbtv.o

我想现在写自己的makefile。我现在想知道的是,Kconfig文件的用途以及如何使用它。我很难找到关于如何使用它的更多信息,只是关于KDE的一些东西,这不是我想要的。有人可以开导我吗?我认为这很重要,因为在描述中(在我链接的第一个网站上)它说如何使其工作

  

Linux内核驱动程序,启用CONFIG_VIDEO_USBTV

这是Kconfig文件:

config VIDEO_USBTV
        tristate "USBTV007 video capture support"
        depends on VIDEO_V4L2
        select VIDEOBUF2_VMALLOC

        ---help---
          This is a video4linux2 driver for USBTV007 based video capture devices.

          To compile this driver as a module, choose M here: the
          module will be called usbtv

此外,Kconfig文件中含有"在这里选择M"?哪里?怎么样?当α

1 个答案:

答案 0 :(得分:3)

生成文件

此Makefile未完成。它包含在其他makefile中:

这个makefile [1]包括这个[2],其中包括这个[3],其中包括这个[4],其中包括这个[5],其中包括你的例子。

的Kconfig

与Makefile一样,此Kconfig文件也不完整。它包含在其他Kconfig中:这个kconfig [6]包括......其中包括......等...包括你的例子。

根据文档,这段kconfig定义了一个帮助文本:

  
      
  • 帮助文字:" help"或" ---帮助---"   这定义了帮助文本。帮助文本的结尾由   缩进级别,这意味着它在第一行结束   比帮助文本的第一行更小的缩进。   " ---帮助---"和"帮助"没有不同的行为," ---帮助---"是   用于帮助在视觉上将配置逻辑与帮助内部分开   该文件可以帮助开发人员。
  •   

所以," M"是程序的一个选项,不是kconfig的功能。它与Kconfig无关。

文档

你会在这里找到kconfig文档[7]和makefile文档[8]。

网址

  

[1] https://github.com/torvalds/linux/blob/master/Makefile

     

[2] https://github.com/torvalds/linux/blob/master/drivers/Makefile

     

[3] https://github.com/torvalds/linux/blob/master/drivers/media/Makefile

     

[4] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile

     

[5] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile

     

[6] https://github.com/torvalds/linux/blob/master/Kconfig

     

[7] https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt

     

[8] https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt