zoukankan      html  css  js  c++  java
  • Linux源码Kconfig文件语法分析

    Kconfig是我们进行内核配置的关键文件,用于生成menuconfig的界面并生成最终确定编译选项的.config文件。关于Kconfig文件的编写规则,在Documentation/kbuild/kconfig-language.txt有详尽的叙述。这里主要用实例进行语法分析。

    config

    确定了条目前面是否有选项,menuconfig界面中的条目中一共有3种主动选项,分别是[ ],< >( ),分别表示"被编译进内核or舍弃","编译进内核or编译成模块or舍弃", "按照提示输入一个数字",分别对应Kconfig文件中的bool,tristateint{ }- -属于被动选项,是配置系统根据依赖关系自动生成的选项,不能被手动修改。

    即图形界面中有--->的条目,回车后可以展开。条目前面没有选项

    !


    是menu和config的结合体,既在前面有选项,回车后也可以展开。

    choice/endchoice

    展开之后会有多选一的界面,每种选项都有独立的config管理


    comment


    if/endif

    如果if之后的值被选定了,里面的内容才能展开



    source

    表示调用指定路径的Kconfig,相当于C中的include,上例已经给出说明

    depends on

    实现配置的相当关键的关键字,表示当前选项依赖于另外一个选项,如果另外一个不选,这个都不会出现。




    select

    另一个相当关键的关键字,表示当前选项需要另外选项的支持,如果选了当前选项,那么其后的选项会被强制选择,{ }- -就是这个实现的。下例中,只要这些Kconfig中进行了"select HAVE_ARM_ARCH_TIMER",都会导致"HAVE_ARM_ARCH_TIMER"被强制选择,表现在menuconfig上就是"Architected timer support"被强制选定

    .config文件分析

    经过适当的配置之后保存就会在顶层目录下生成.config文件
    =y表示该配置将会被编译进内核,=m表示该配置需要单独编译成模块

  • 相关阅读:
    安卓学习第12课——SimpleAdapter
    用栈结构实现多项式计算器
    用B-树实现虚拟图书管理系统
    HDU4791【杂】
    HDU4801【DFS】
    萌新学习图的强连通(Tarjan算法)笔记
    Lightoj 1021【状压DP(未搞)】
    Lightoj 1008【规律】
    CodeForces Canada Cup 2016【A,B,C,D】
    51nod 1068【简单博弈】
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/6131131.html
Copyright © 2011-2022 走看看