首页 > 编程知识 正文

autoconf config,mysql的使用教程

时间:2023-05-06 13:46:36 阅读:49352 作者:1396

Autoconf

创建自动配置脚本

2.13版,for autoconf 2.13版

December 1998

by David MacKenzie and无知的懒汉Elliston

------------- -请参阅

permissionisgrantedtomakeanddistributeverbatimcopiesofthismanualprovidedthecopyrightnoticearepreservedodthispermisssiononoticearearerereprerepreservervededodododod

permissionisgrantedtocopyanddistributemodifiedversionsofthismanualundertheconditionsforverbatimcopying, providedthattheentireresultingderivedworkisdistributedunderthetermsofapermissionnoticeidenticaltothisone。

permissionisgrantedtocopyanddistributetranslationsofthismanualintoanotherlanguage, undertheaboveconditionsformodifiedversions exceptthatthispermissionnoticemaybestatedinatranslationapprovedbythefresoftwarefounound

只要版权声明和本许可证声明仍保留在所有副本中,客户就可以制作和发布本手册的原文副本。 中国网管论坛bbs.bitsCN.com

只要整个最终派生工作按照与本文档相同的许可声明发布,客户就可以在与原文发布相同的条件下复制和发布本文档的修改版。

除本许可证声明应使用经基金会批准的译文外,客户被允许在与上述修订版相同的条件下复制和发行本手册其他语言的译文。

------------- -请参阅

此文档已由kkdmy翻译。 1999.12.16

译者在此声明:对译文错误或对译文的误解不负任何责任。

------------- -请参阅

介绍

a物理ist,an engineer,and a computer scientist were

discussing the nature of God . Surely a Physicist,said the

物理ist,because early in the Creation,God made Light; 与于

know,sdkl's equations,thedualnatureofelectro-magnetic

waves,therelativistconsequences . an engineer!said the

engineer,because before making Light,God split the Chaos into

Land and Water; ittakesahellofanengineertohandlethatbig

网络管理联盟bitsCN_com

amount of mud,andorderlyseparationofsolidsfrom

liquids . thecomputerscientistshouted 3360 and the chaos,

where do you think it was comming from,hmm?

---Anonymous

Autoconf是一个工具,用于生成shell脚本,该脚本会自动配置软件包以适应各种Unix系统。 Autoconf生成的配置脚本将运行,而与Autoconf无关。 这意味着配置脚本的用户不需要拥有Autoconf。

由Autoconf生成的配置脚本在运行时不需要用户手动操作。 通常,甚至不需要指定参数来确定系统类型。 相反,封装可能需要它

各种特征进行独立的测试。(在每个测试之前,它们打印一个单行的消息以说明它们正在进行的检测,以使得用户不会因为等待脚本执行完毕而焦躁。)因此,它们在混合系统或者从各种常见Unix变种定制而成的系统中工作的很好。没有必要维护文件以储存由各个Unix变种、各个发行版本所支持的特征的列表。

对于每个使用了Autoconf的软件包,Autoconf从一个列举了该软件包需要的,或者可以使用的系统特征的列表的模板文件中生成配置脚本。在shell代码识别并响应了一个被列出的系统特征之后,Autoconf允许多个可能使用(或者需要)该特征的软件包共享该特征。如果后来因为某些原因需要调整shell代码,就只要在一个地方进行修改;所有的配置脚本都将被自动地重新生成以使用更新了的代码。 网管网www_bitscn_com

Metaconfig包在目的上与Autoconf很相似,但它生成的脚本需要用户的手工干预,在配置一个大的源代码树的时候这是十分不方便的。不象Metaconfig脚本,如果在编写脚本时小心谨慎, Autoconf可以支持交叉编译(cross-compiling)。

Autoconf目前还不能完成几项使软件包可移植的工作。其中包括为所有标准的目标自动创建`Makefile'文件,包括在缺少标准库函数和头文件的系统上提供替代品。目前正在为在将来添加这些特征而工作。

对于在C程序中的#ifdef中使用的宏的名字,Autoconf施加了一些限制(参见预处理器符号索引)。

Autoconf需要GNU m4以便于生成脚本。它使用了某些UNIX版本的m4 所不支持的特征。它还会超出包括GNU m4 1.0在内的某些m4版本的内部限制。你必须使用GNU m4的1.1版或者更新的版本。使用1.3版或者更新的版本将比1.1 或1.2版快许多。

关于从版本1中升级的详情,参见从版本1中升级。关于Autoconf的开发历史,参见Autoconf的历史。对与Autoconf有关的常见问题的回答,参见关于Autoconf的问题。

把关于Autoconf的建议和bug报告发送到bug-gnu-utils@prep.ai.mit.edu。请把你通过运行`autoconf --version'而获得的Autoconf的版本号包括在内。

网管联盟bitsCN_com

创建configure脚本

由Autoconf生成的配置脚本通常被称为configure。在运行的时候,configure 创建一些文件,在这些文件中以适当的值替换配置参数。由configure创建的文件有:

一个或者多个`Makefile'文件,在包的每个子目录中都有一个(参见 Makefile中的替换);

有时创建一个C头文件,它的名字可以被配置,该头文件包含一些#define命令(参见配置头文件);

一个名为`config.status'的shell脚本,在运行时,它将重新创建上述文件。(参见重新创建一个配置);

一个名为`config.cache'的shell脚本,它储存了许多测试的运行结果(参见缓存文件);

一个名为`config.log'的文件,它包含了由编译器生成的许多消息,以便于在configure出现错误时进行调试。

为了使用Autoconf创建一个configure脚本,你需要编写一个Autoconf的输入文件 `configure.in'并且对它运行autoconf。如果你自行编写了特征测试以补充 Autoconf所提供的测试,你可能还要编写一个名为`aclocal.m4'的文件和一个名为 `acsite.m4'的文件。如果你使用了包含#define指令的C头文件,你可能还要编写`acconfig.h',并且你需要与软件包一同发布由Autoconf生成的文件 `config.h.in'。

网管bitscn_com

下面是一个说明了在配置中使用的文件是如何生成的图。运行的程序都标以后缀`*'。可能出现的文件被方括号(`[]')括起来。autoconf和autoheader 还读取安装了的Autoconf宏文件(通过读取`autoconf.m4')。

在准备发布软件包的过程中使用的文件:

你的源文件 --> [autoscan*] --> [configure.scan] --> configure.in

configure.in --.? .------> autoconf* -----> configure

??????? +---+

[aclocal.m4] --+? `---.

[acsite.m4] ---'??? |

??????????? +--> [autoheader*] -> [config.h.in]

[acconfig.h] ----.?? |

???????? +-----'

[config.h.top] --+

[config.h.bot] --'

Makefile.in -------------------------------> Makefile.in

在配置软件包的过程中使用的文件:

??????????? .-------------> config.cache

configure* ------------+-------------> config.log

??????????? |

[config.h.in] -.??? v??????.-> [config.h] -.

网管论坛bbs_bitsCN_com

??????? +--> config.status* -+??????? +--> make*

Makefile.in ---'??????????`-> Makefile ---'

编写`configure.in'

为了为软件包创建configure脚本,需要编写一个名为`configure.in' 的文件,该文件包含了对那些你的软件包需要或者可以使用的系统特征进行测试的Autoconf宏的调用。现有的Autoconf宏可以检测许多特征; 对于它们的描述可以参见现有的测试。对于大部分其他特征,你可以使用Autconf模板宏以创建定制的测试;关于它们的详情,参见 编写测试。对于特别古怪或者特殊的特征,`configure.in' 可能需要包含一些手工编写的shell命令。程序autoscan可以为你编写`configure.in' 开个好头(详情请参见用autoscan创建`configure.in')。

除了少数特殊情况之外,在`configure.in'中调用Autoconf宏的顺序并不重要。在每个`configure.in'中,必须在进行任何测试之间包含一个对AC_INIT的调用,并且在结尾处包含一个对AC_OUTPUT的调用(参见创建输出文件)。此外,有些宏要求其他的宏在它们之前被调用,这是因为它们通过检查某些变量在前面设定的值以决定作些什么。这些宏在独立的说明中给出(参见现有的测试),而且如果没有按照顺序调用宏,在生成configure时会向你发出警告。 网管朋友网www_bitscn_net

为了提高一致性,下面是调用Autoconf宏的推荐顺序。通常,在本列表中靠后的项目依赖于表中靠前的项目。例如,库函数可能受到typedefs和库的影响。

AC_INIT(file)

checks for programs

checks for libraries

checks for header files

checks for typedefs

checks for structures

checks for compiler 等待的板凳 【转自www.bitsCN.com】

阅读(372) | 评论(0) | 转发(0) |

给主人留下些什么吧!~~

评论热议

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。