
Autoconf
ignorantshr
这个作者很懒,什么都没留下…
展开
-
Autoconf简介
Autoconf是一个用于生成shell脚本的工具,可以自动配置软件源代码以适应多种类似POSIX的系统。为了让你的软件包在所有的不同系统上都可以进行编译。GNU 构建系统Autoconf解决了系统特使构建和运行时信息的难题,但在软件开发时还有更多的难题,GNU构建系统是为了更好的开发软件而开发的一套完整的公益事业。主要组成部分有Autoconf、Automake和Libtool。Auto...翻译 2019-01-05 09:43:23 · 13652 阅读 · 0 评论 -
14.手动配置
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question运行测试程序不能自动猜测一小部分功能。获取系统类型下面的这些宏使系统类型变量对于configure脚本可用。如果使用这些宏,必须将config.guess于config.sub跟源码一起发布。AC_CANONICAL_BUILD计算构建系统类型变量build,及其三个私有部...翻译 2019-01-05 10:23:15 · 319 阅读 · 0 评论 -
10.编写Autoconf宏
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question10.1 宏的定义AC_DEFUN (name, [body])定义Autoconf宏,类似于M4的内置宏m4_define。也可以将自己的宏定义写在.m4文件中,在configure.ac文件中调用(推荐做法)。AC_DEFUN([AX_PYTHON_MODULE],[ ...翻译 2019-01-05 10:20:46 · 1370 阅读 · 0 评论 -
9.使用M4sh编程
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:questionM4sh,称作mash,目的是产生便携式可移植 Bourne shell 脚本。因为不同的shell的语法不兼容,故创造此种宏来解决。其宏以AS_开头。在shell和环境变量中保留了变量命名空间as_,输出文件中是_AS[A-Z]。9.1 普通的shell结构AS_IF (te...翻译 2019-01-05 10:18:40 · 714 阅读 · 0 评论 -
8.使用M4编程
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:questionAutoconf在两个层面上编写:1、M4sugar,提供比纯M4编程更加方便的宏;2、M4sh,提供专用于生成shell脚本的宏。8.1 M4 的引用Autoconf的使用者可以跳过这一部分,宏编写者必须阅读。M4 Qutation。每次宏展开时,都会去除一层引用。8.1....翻译 2019-01-05 10:16:15 · 1683 阅读 · 0 评论 -
7.测试结果
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question一旦configure确定了哪些功能存在,它能做什么来记录信息呢?定义一个C处理器标识在输出文件中设置一个变量将configure运行的功能的结果保存在一个缓存文件中打印信息让用户知道测试结果7.1 定义C处理器标识对有响应的功能测试的普通做法就是定义一个C处理器标识...翻译 2019-01-05 10:14:15 · 690 阅读 · 0 评论 -
6.编写测试
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question这些宏检查当前语言的编译系统的输出。他们不会缓存检查结果,也不会打印任何信息。对于特定功能的检查会调用这些宏,然后缓存结果并打印信息。6.1 语言选择configure默认为C语言检查编译器及其特性。AC_LANG (language)‘C’ Do compilati...翻译 2019-01-05 10:11:57 · 463 阅读 · 0 评论 -
5.现有测试
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:question5.2 备选程序这些宏用于检查指定程序的存在或者行为。经常从几个备选程序中选择一个出来。5.2.1 特殊程序检查AC_PROG_LN_S如果当前文件系统支持ln -s,设置输出变量LN_S为ln -s;否则,如果支持ln,设置LN_S为ln,否则设置为cp -pR。AC_P...翻译 2019-01-05 10:09:30 · 357 阅读 · 0 评论 -
4.初始化和输出文件
4.1 初始化 configureAC_INIT (package, version, [bug-report], [tarname], [url])第一个要执行的宏。设置程序名、版本号、联系方式…。他们都应该是静态的参数,不能是shell参数、引用或者新行,但是可以通过m4计算出来。AC_INIT([vdsm], [m4_esyscmd([build-aux/pkg-ver...翻译 2019-01-05 10:06:50 · 1349 阅读 · 0 评论 -
15.Site配置
本系列文章均翻译自Autoconf官方文档:Autoconf Manual,github同步项目:questionconfigure支持几种本地的配置策略。15.2 使用外部软件AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])如果用户运行configure的时候给了选项--with-pa...翻译 2019-01-06 14:31:20 · 428 阅读 · 0 评论