知识大全 autoconf手册(七)

Posted 变量

篇首语:知识是为老年准备的最好的食粮。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 autoconf手册(七)相关的知识,希望对你有一定的参考价值。

  获取规范的系统类型   下列的宏使得configure脚本可以获得系统类型 它们运行shell脚本config guess以确定用户在命令行中没有给出的 它们需要的关于主机 目标和创建类型的所有值 它们运行config sub对用户给出的任何别名进行规范化 如果你使用这些宏 你必须把这两个shell脚本与你的源代码一同发布 关于 AC_CONFIG_AUX_DIR的信息 你可以通过该宏设置configure查找这些脚本的目录 请参见 创建输出文件 如果你没有使用这些宏中的任意一个 configure 就忽略任何传递给它的` host ` target 和` build 选项   宏 AC_CANONICAL_SYSTEM   检测系统类型并把输出变量设置成规范的系统类型 关于该宏设置变量的细节 参见系统类型变量   宏 AC_CANONICAL_HOST   只执行AC_CANONICAL_SYSTEM中关于主机类型功能的子集 对于不是编译工具链(piler toolchain)一部分的程序 这就是所需要的全部功能   宏 AC_VALIDATE_CACHED_SYSTEM_TUPLE (cmd)   如果缓存文件与当前主机 目标和创建系统类型不一致 就执行cmd或者打印一个缺省的错误消息     系统类型变量   在调用了AC_CANONICAL_SYSTEM之后 下列输出变量包含了系统类型信息 在调用了AC_CANONICAL_HOST 之后 只设置了下列host变量   build host target     规范系统名称   build_alias host_alias target_alias   如果使用了config guess 就是用户指定的名称或者规范名称   build_cpu build_vendor build_os   host_cpu host_vendor host_os   target_cpu target_vendor target_os   为方便而提供的规范名称的独立部分   使用系统类型   你将如何使用规范的系统类型?通常 你在`configure in 中的一个或多个case语句中使用它来选择系统特定的C文件 而后把那些使用基于系统名的文件名的文件连接到诸如`host h 或`target c 的普通的文件上 case语句模型允许使用shell通配符对多种情况进行编组 就像下面的片断     case $target in   i * mach* | i * gnu*) obj_format=aout emulation=mach bfd_gas=yes ;;   i * bout) obj_format=bout ;;   esac   宏 AC_LINK_FILES (source dest )   使得AC_OUTPUT把每个存在文件的source连接到对应连接名dest 如果可能 创建一个符号连接 否则就创建硬连接 dest和source应该是相对于顶层源代码目录或者创建目录的相对路径 可以多次调用本宏     例如 下列调用   AC_LINK_FILES(config/$machine h config/$obj_format h host h object h)     在当前目录中创建`host h 它是一个到`srcdir/config/$machine h 的连接 并且创建`object h 它是一个到`srcdir/config/$obj_format h 的连接   你还可以使用主机系统类型以寻找交叉编译工具 关于完成该任务的宏AC_CHECK_TOOL的信息 参见对普通程序和文件的检查     站点配置   configure脚本支持几种本地配置决策方式 它们是用户指明外部软件的位置 包括或除去可选的特征 以修改过的名称安装的程序 以及为configure选项设置缺省值的手段     与外部软件一起工作   有些软件包需要 或者可选地使用其它已经安装的软件包 用户可以把命令行选项传递给configure 以指明使用那个外部软件 选项采用下列形式之一    with package[=arg]    without package   例如 ` with gnu ld 的意思是使用GNU连接器而不是任何其它连接器 ` with x 的意思是使用X Window系统     用户可以给出包名加`= 加参数的命令行参数 `no 是关于包的缺省参数 它表示不使用包 既不是`yes 又不是`no 的参数将包含其它包的名字或者版本号 以便更精确地指定本程序可以与之协同工作的包 如果没有给出参数 ` without package 的缺省参数为`yes ` without package 等价于` with package=no     configure脚本并不对它们不支持的` with package 选项发出警告 本特征允许顶层目录中的configure脚本配置一个包含多个包的源代码树 在包支持不同的选项的时候 不会因为给出了只有一部分包支持的选项而导致不必要的错误消息 一个不幸的副作用是选项的拼写错误就不能被检查出来了 迄今为止还没有处理该问题的更好办法     对于每个可能使用的外部软件包 `configure in 都应该调用AC_ARG_WITH以检测 configure的用户是否要求使用它 确定在缺省状态下 是使用还是不使用每个包 以及那个参数是合法的 是你的任务   宏 AC_ARG_WITH (package help string [ action if given [ action if not given]])   如果用户以选项` with package 或者` without package 调用 configure 就运行shell命令action if given 如果两个选项都没有给出 就运行shell命令 action if not given 名字package给出了本程序应该与之协同工作的其它软件包 它应该仅仅由字母 数字和破折号(dashes)组成     shell命令action if given可以通过shell变量withval得到选项的参数 该变量的值实际上就是把 shell变量with_package的值中的所有` 字符替换为`_ 而得的 如果你愿意 可以使用变量with_package     参数help string是对选项的描述 它看起来应该像      with readlinesupport fancy mand line editing     如果需要给出更多的细节 help string可能多于一行 只要确保`configure help 中的列的排列就可以了 不要在求助字符串中使用tab 你将需要用`[ 和`] 包围它以生成前导空格     宏 AC_WITH (package action if given [ action if not given])   这是不支持求助字符串的AC_ARG_WITH的过时版本     选择包选项   如果软件包含有可选的编译时(pile time)特征 用户就可以在调用configure时使用命令行选项来指明是否编译它们 选项采用如下形式之一      enable feature[=arg]    disable feature     这些选项允许用户选择可选的选项进行创建和安装 ` enable feature 选项永远不要使特征的行为变得不同或者导致一个特征代替另一个特征 它们只应该导致程序的一部分被创建而另一部分不创建     用户可以通过在特征名之后添加`= 和参数来给出参数 给出参数`no 表示 不能使用该特征 一个带有参数的特征看起来就像` enable debug=stabs 如果没有给出参数 它的缺省值就是`yes ` disable feature 等价于 ` enable feature=no     configure脚本并不对它们所不支持的` enable feature 选项发出警告 本特征允许顶层目录中的configure脚本配置一个包含多个包的源代码树 在包支持不同的选项的时候 不会因为给出了只有一部分包支持的选项而导致不必要的错误消息 一个不幸的副作用是选项的拼写错误就不能被检查出来了 迄今为止还没有处理该问题的更好办法     对于每个可选的特征 `configure in 都应该调用AC_ARG_ENABLE以检测configure 的用户是否要求把该特征包含进来 确定在缺省情况下 每个特征是否被包含进来 以及那些选项是合法的 是你的任务   宏 AC_ARG_ENABLE (feature help string [ action if given [ action if not given]])   如果用户以选项` enable feature 或者` disable feature 调用 configure 就运行shell命令action if given 如果两个选项都没有给出 就运行shell命令 action if not given 名称feature表示可选的用户级功能 它应该仅仅由字母 数字和破折号(dashes)组成     shell命令可以通过访问shell变量enableval来得到选项的参数 该变量的值实际上就是把shell变量 enable_feature的值中所有的` 字符替换成`_ 而得到的 如果你愿意 可以使用变量enable_feature help string参数类似于 AC_ARG_WITH中相应的参数(参见与外部软件一起工作)     宏 AC_ENABLE (feature action if given [ action if not given])   这是不支持求助字符串的AC_ARG_ENABLE的过时版本     配置站点细节   有些软件包需要复杂的与站点相关(site specific)的信息 例如用于某种服务 公司名称和email联系地址的主名(host names) 因为有些配置脚本是通过Metaconfig方式交互地询问这些信息生成的 人们有时对于按非交互方式 由Autoconf生成配置脚本如何获取这些信息感到困惑     这些站点配置信息应该被储存在一个仅仅由用户 而不是程序 编辑的文件中 文件的位置既可以基于 prefix变量 也可以是一个标准的位置 比如说用户的home目录 它甚至可能通过一个环境变量给出 程序应该在运行时 而不是在编译时 检查那个文件 运行时配置对于用户来说更为方便 并且使得配置过程比在配置时获取这些信息要简单 关于存放数据文件的地点的详细信息 参见GNU编码标准中的 `为安装目录而提供的变量     在安装的时候改变程序的名称   Autoconf支持在安装程序的时候修改程序的名称 为了使用这些变换 `configure in 必须调用宏 AC_ARG_PROGRAM   宏 AC_ARG_PROGRAM   把对被安装的程序的名称进行替换的sed命令序列存入输出变量program_transform_name中     如果把下列任意选项传递给了configure 程序名就据此进行变换 否则 如果已经调用了AC_CANONICAL_SYSTEM并且` target 的值给出了与主机类型(用` host 给出的 或者是在config sub中设置的缺省值)不同的类型 就把末尾附加了破折号的目标类型作为前缀 否则 就不进行程序名变换   转换选项 cha138/Article/program/Oracle/201311/18172

相关参考

知识大全 六下数学评价手册六、七单元测试(P48-P50页)答案

六下数学评价手册六、七单元测试(P48-P50页)答案  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 七年级上册语文评价手册 21.风筝 答案 急……必须马上解决,好的加赏分

七年级上册语文评价手册21.风筝答案急……必须马上解决,好的加赏分一有感情地朗读课文,回答下列问题。1.作者看到“远处有一二风筝浮动”,就感到“惊异和悲哀”,这是为什么?2.文中所说的“对于精神的虐杀

含有费菜的处方

费菜[别名养心草、倒山黑豆(《福建民间草药》),马三七、白三七、胡椒七(《湖南药物志》),七叶草(《闽东本草》),晏海豆丬、回生草(《福建中草药》),血草(福建晋江《中草药手册》)],酸,平。①《救荒

知识大全 完全技术手册——Struts使用手册一

完全技术手册——Struts使用手册一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  序    

知识大全 完全技术手册——Struts使用手册二

完全技术手册——Struts使用手册二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  其他表示层

糖尿病患者为何应建立疗养手册

糖尿病疗养手册是糖尿病患者自己的病历,每位糖尿病患者自己都要建立疗养手册。通过疗养手册把自己的体重、血压、尿糖、饮食内容、运动量、用药情况及自觉症状如何做一记录,定期检查时,拿给医生看,是医生开医嘱、

糖尿病患者为何应建立疗养手册

糖尿病疗养手册是糖尿病患者自己的病历,每位糖尿病患者自己都要建立疗养手册。通过疗养手册把自己的体重、血压、尿糖、饮食内容、运动量、用药情况及自觉症状如何做一记录,定期检查时,拿给医生看,是医生开医嘱、

知识大全 六下 语文评价手册20

六下语文评价手册20<<竹石>>郑板桥<<蝉>>虞世南<<马>>李贺六下语文评价手册3.3,1,3,1,5,3,5,1,3,2,

知识大全 六下数学评价手册期中测试1、2题

六下数学评价手册期中测试1、2题你自己不会想啊,作业要自己完成,那这样你也别学了,就知道抄答案六下数学评价手册期末测试要快点,好的话加分数学评价手册期中测试解决问题答案1.1米=10分米6×6+(10

污水处理工程调试及试运行指导手册

污水处理工程调试及试运行指导手册一、宗旨本手册是针对污水处理工程调试及试运行工作编写的,可供安装、调试及营运工作人员使用,亦可作为建设方、施工方施工验收之参考。二、纲目手册含以下主要内容:调试条件、调