老古开发网首页
导航:老古开发网首页文章索引索引第1499页文章分类AVR单片机第44页→[用于编写configure.in的Config语言简介-1]
| -文章搜索 - 最新文章 - |

第1434篇:用于编写configure.in的Config语言简介-1

发布时间:2006年4月6日 点击次数:4975
来源:   作者:
 

1. 介绍

Config语言不是bash. Config语言是一种Linux内核配置语言. config.in and Config.in都是使用本语言编制而成. 尽管它看起来,通常工作时,很象一个SH语言的子集,CONFIG语言有更加严格的语法和不同的语义.

CONFIG语言编程的基本指南:仅使用在CONFIG.IN文件中出现的编程语句.

2. 说明

有四各配置程序可以解释和识别Config语言:

l         scripts/Configure        make configmake oldconfig

l         scripts/Menuconfig      make menuconfig

l         scripts/tkparse          make xconfig

l         mconfig             (in development)

'Configure' 是一个bash脚本语言,它解释了Config.in文件;'Menuconfig'是另外一种bash脚本.

3. 语句

一个Config语言脚本是由一系列的语句构成的。共有21个简单的语句;一个'if'语句;菜单块和一个 'source'语句。

一行结尾处的'\' 表示续行。

'#'用于引入一个注释, 该注释一直保持到该行的结尾. 但是,如果是多行的形如'# ... is not set'的并不是注释,它们具有语义。

    不能用;(分号)来开始一个新行。 'if'语句中的处可以开始一个新行。

3.1基本的语法元素:

    /prompt/——一个位于单引号或双引号内的字符串. 如果字位于双引号内,它不需要任何$

    /word/——一个未加引号的字, 位于单引号或双引号内的字符串。如果字未加引号或是位于双引号内的需要$号。

    /symbol/——一个没有引号的字. symbol必须以CONFIG_*的形式出现。

    /dep/ ——一个相关字. 运行时/dep/ 必须等于 "y", "m", "n", ""

    /expr/——一类bash的表达式,使用以下运算符:'=' '!=' '-a' '-o''!'

3.2 所有的语句:

文字语句:

        mainmenu_name          /prompt/

        comment               /prompt/

        text                     /prompt/

    询问语句:

        bool            /prompt/ /symbol/

        hex             /prompt/ /symbol/ /word/

        int               /prompt/ /symbol/ /word/

        string             /prompt/ /symbol/ /word/

        tristate             /prompt/ /symbol/

    字义语句:

        define_bool        /symbol/ /word/

        define_hex        /symbol/ /word/

        define_int          /symbol/ /word/

        define_string        /symbol/ /word/

        define_tristate        /symbol/ /word/

    相关语句:

        dep_bool        /prompt/ /symbol/ /dep/ ...

        dep_mbool       /prompt/ /symbol/ /dep/ ...

        dep_hex         /prompt/ /symbol/ /word/ /dep/ ...

        dep_int           /prompt/ /symbol/ /word/ /dep/ ...

        dep_string         /prompt/ /symbol/ /word/ /dep/ ...

        dep_tristate         /prompt/ /symbol/ /dep/ ...

    未设置语句:

        unset                    /symbol/ ...

    选项语句:

        choice          /prompt/ /word/ /word/

        nchoice         /prompt/ /symbol/ /prompt/ /symbol/ ...

    If语句:

        if [ /expr/ ] ; then /statement/

         ... fi

        if [ /expr/ ] ; then /statement/

         ... else /statement/

         ... fi

    菜单块:

        mainmenu_option next_comment

        comment /prompt/ /statement/ ... endmenu

    Source语句:

        source /word/

l         mainmenu_name /prompt/

用于指定本CONFIG语言文件顶层的名字。

例如:

    # arch/sparc/config.in

    mainmenu_name "Linux/SPARC Kernel Configuration"

l         comment /prompt/

此语句用于在用户配置过程中向用户显示提示信息,同时在输出期间也把它返回给输出文件。注意:此处的prompt,象所有的prompt一样,是一个没有$符号、位于引号内的字符串。

'comment'并不用于对一个CONFIG语言的注释。它用于用户接口显示文字,以及向输出文件中写入输出信息。

例如:

    # drivers/net/Config.in

    comment 'CCP compressors for PPP are only built as modules.'

l         text /prompt/

向用户显示提示信息。不向输出文件中写入提示信息。仅 mconfig 在它的帮助中使用此命令。

例如:

    # mconfig internal help text

    text 'Here are all the mconfig command line options.'

l         bool /prompt/ /symbol/

此命令用于向用户显示/prompt/提示信息,并从用户接收数据,并把该数据赋给/symbol/。合法的输入值为 "n" "y"


欢迎进入老古论坛进行讨论
[AVR单片机] 相关文章:
[转]arm开发经验!(连载4)
简介:
/* ****************************************************************************** *************************** * &......

[转]arm开发经验!(连载3)
[转]arm开发经验!(连载2)
arm开发经验!(适合初学者入门)
指导导师的条件和修养
 
下一个:[新闻热点]家电消费也要安全和谐。
简介:
近年来,家电产品通过更新换代,不断进行安全升级,设计细节体现人性化关怀的趋势越来越明显。 安全升级 在家电产品中,厨卫产品的安全性能历来是行业关注的重点。尽管国家尚未明令禁止烟道式热水器的销售和使用,如今各大厨卫品牌厂家的专柜里......

上一个:[AVR单片机]用于编写configure.in的Config语言简介-3

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:31毫秒