GNU Autoconf Introduction

GNU autoconf, automake, and libtool 关于 Autoconf、Automake 和 Libtool 的教程,描述了它们怎样共同工作,教你使用这些工具建立跨平台的工程。清晰的chm文档。 立即下载

下载地址:https://www.gnu.org/software/autoconf/manual/autoconf.pdf


Autoconf is a tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of Posix-like systems.

Autoconf是一种用于生成shell脚本的工具,可自动配置软件源代码包,以适应多种类型的 Posix-like 系统。

The configuration scripts produced by Autoconf are independent of Autoconf when they are run, so their users do not need to have Autoconf.

Autoconf 生成的配置脚本在运行时独立于Autoconf,因此用户不需要安装 Autoconf。


The configuration scripts produced by Autoconf require no manual user intervention when run;

Autoconf 生成的配置脚本在运行时并不需要用户手动干预

they do not normally even need an argument specifying the system type.

通常它们也不需要通过参数指定系统的类型。

Instead, they individually test for the presence of each feature that the software package they are for might need.

取而代之的是,它们会单独测试每个功能可能需要的软件包是否存在

(Before each check, they print a one-line message stating what they are checking for, so the user doesn’t get too bored while waiting for the script to finish.)

(在每次检查之前, 它们会打印一行消息, 说明它们正在检查什么, 所以用户在等待脚本完成时也不会感到无聊)。

As a result, they deal well with systems that are hybrids or customized from the more common Posix variants.

这样导致的结果就是它能够很好的处理混血系统或常见的 Posix 变体定制系统.

There is no need to maintain files that list the features supported by each release of each variant of Posix.

并不需要维护 各个版本Posix 变体系统所支持的功能特性的文件列表


For each software package that Autoconf is used with, it creates a configuration script from a template file that lists the system features that the package needs or can use.

对于使用 Autoconf 的每个软件包, 它将从模板文件创建一个配置脚本, 该模板文件列出了软件包需要或可以使用的系统功能

After the shell code to recognize and respond to a system feature has been written, Autoconf allows it to be shared by many software packages that can use (or need) that feature.

在编写了用于识别和响应系统功能的shell代码之后,Autoconf允许它被许多可以使用(或需要)该功能的软件包共享。

If it later turns out that the shell code needs adjustment for some reason, it needs to be changed in only one place;

如果后期由于某种原因需要调整shell代码,那么仅需要在一个地方进行更改即可;

all of the configuration scripts can be regenerated automatically to take advantage of the updated code.

所有配置脚本都可以自动重新生成,以利用更新的代码。


Those who do not understand Autoconf are condemned to reinvent it, poorly.

一些不了解 Autoconf 的人谴责它是重复造轮子,这很糟糕。

The primary goal of Autoconf is making the user’s life easier; making the maintainer’s life easier is only a secondary goal.

Autoconf 的主要目标是使用户的生活更轻松;使维护者的生活更轻松仅是次要目标。

Put another way, the primary goal is not to make the generation of ‘configure’ automatic for package maintainers
(although patches along that front are welcome, since package maintainers form the user base of Autoconf);

换句话说, Autoconf 的主要目标并不是为软件包维护者自动生成 ‘configure’
(尽管这个前端的补丁很受欢迎,因为软件包维护者成了Autoconf 的用户群)

rather, the goal is to make ‘configure’ painless, portable, and predictable for the end user of each auto confiscated package.

相反,它的目标是使最终用户自动化 ‘配置’ 包的过程变得无痛,可移植 和 可预测

And to this degree, Autoconf is highly successful at its goal — most complaints to the Autoconf list are about difficulties in writing Autoconf input, and not in the behavior of the resulting ‘configure’.

在这种程度上可以说 Autoconf 的目标是非常成功的 —— 对 Autoconf 列出的大部分抱怨都是写Autoconf 脚本难,
而不是其生成 ‘configure’ 的行为难。

Even packages that don’t use Autoconf will generally provide a ‘configure’ script,

即使不使用 Autoconf 的包通常也会提供一个 ‘configure’ 脚本,

and the most common complaint about these alternative home-grown scripts is that they fail to meet one or more of the GNU Coding Standards (see Section ‘Configuration’ in The GNU Coding Standards) that users have come to expect from Autoconf-generated ‘configure’ scripts.

对于一些原生脚本最常见的抱怨是它们不符合一个或多个GNU编码标准( 请参阅GNU编码标准中的 ‘Configuration’ 一节 )
用户已经期望使用 Autoconf 生成 ‘configure’ 脚本。


The Metaconfig package is similar in purpose to Autoconf, but the scripts it produces require manual user intervention, which is quite inconvenient when configuring large source trees.

Metaconfig 软件包的目的与 Autoconf 类似, 但它生成的脚本需要用户手动干预, 这在配置大型源代码树时相当不方便。

Unlike Metaconfig scripts, Autoconf scripts can support cross-compiling, if some care is taken in writing them.

与Metaconfig脚本不同,Autoconf脚本可以支持交叉编译,如果需要编写它们请注意。


Autoconf does not solve all problems related to making portable software packages—for a more complete solution, it should be used in concert with other GNU build tools like Automake and Libtool.

Autoconf并不能解决制作可移植软件包相关的所有问题 —— 一个更完整的解决方案是,
应该与其他GNU构建工具 Automake 和 Libtool 协调使用

These other tools take on jobs like the creation of a portable, recursive makefile with all of the standard targets, linking of shared libraries, and so on.

这些其他工具承担的工作有,为所有标准目标平台创建一个可移植的、能够递归的 makefile,链接共享库,等等

See Chapter 2 [The GNU Build System], page 3, for more information.

有关详细信息,请参阅第2章 [ GNU构建系统 ],第3页。


Autoconf imposes some restrictions on the names of macros used with #if in C programs
(see Section B.3 [Preprocessor Symbol Index], page 366).

Autoconf 对 C 程序中 #if 使用的宏名称施加了一些限制
( 请参见第B.3节[ 预处理器符号索引 ],第366页 )


Autoconf requires GNU M4 version 1.4.6 or later in order to generate the scripts.

Autoconf 需要 GNU M4 1.4.6 或更高版本才能生成脚本。

It uses features that some versions of M4, including GNU M4 1.3, do not have.

Autoconf 使用的功能在一些版本的 M4 上(包括GNU M4 1.3)没有。

Autoconf works better with GNU M4 version 1.4.14 or later, though this is not required.

Autoconf 最好使用 GNU M4 1.4.14 或更高版本,尽管这不是必需的。


See Section 18.5 [Autoconf 1], page 318, for information about upgrading from version 1.

有关从版本1升级的信息,请参见第18.5节[Autoconf 1],第318页。

See Chapter 21 [History], page 351, for the story of Autoconf’s development.

有关 Autoconf 开发的故事,请参见第21章[历史],第351页。

See Chapter 20 [FAQ], page 341, for answers to some common questions about Autoconf.

有关 Autoconf 的一些常见问题的答案,请参阅第20章[常见问题],第341页。


See the Autoconf web page for up-to-date information, details on the mailing lists, pointers to a list of known bugs, etc.

请参阅 Autoconf 网页了解最新信息,比如邮件列表的详细信息、指向已知错误列表的详细信息, 等等。

Mail suggestions to the Autoconf mailing list. Past suggestions are archived.

可以发送建议到 Autoconf 邮件列表。 过去的建议已被存档。


Mail bug reports to the Autoconf Bugs mailing list. Past bug reports are archived.

也可以发送 错误报告到 Autoconf Bugs 邮件列表中. 过去的错误报告也已归档。

If possible, first check that your bug is not already solved in current development versions, and that it has not been reported yet.

如果可能的话,请先检查您的错误是否还没有在当前开发版本中解决,并且还没有被报告。

Be sure to include all the needed information and a short ‘configure.ac’ that demonstrates the problem.

然后再确保包含所有需要的信息和一个简短的 ‘configure.ac’ 来证明这个问题。


Autoconf’s development tree is accessible via git; see the Autoconf Summary for details, or view the actual repository.

Autoconf 的开发树可以通过git访问; 有关详细信息,请参阅 Autoconf 摘要,或查看实际的代码库。

Anonymous CVS access is also available, see ‘README’ for more details.

匿名CVS访问也可用,有关详细信息,请参阅“README”。

Patches relative to the current git version can be sent for review to the Autoconf Patches mailing list, with discussion on prior patches archived;

可以将相对于当前git版本的补丁发送给 Autoconf Patches 邮件列表进行审阅,并对先前的修补程序进行了讨论;

and all commits are posted in the read-only Autoconf Commit mailing list, which is also archived.

并且所有提交都被投递到只读的 Autoconf Commit 邮件列表中,该列表也已被归档。


Because of its mission, the Autoconf package itself includes only a set of often-used macros that have already demonstrated their usefulness.

由于它的使命,Autoconf 包本身只包含一组经常使用的宏,这些宏已经证明了它们的有效性。

Nevertheless, if you wish to share your macros, or find existing ones, see the Autoconf Macro Archive, which is kindly run by Peter Simons.

不过,如果您希望分享您的宏,或找到现有的宏,请参阅由 Peter Simons 所管理的 Autoconf 宏存档。

GNU autoconf Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的 shell脚本的工具 立即下载

相关推荐

告别U盘!在Ubuntu 22.04上从零搭建PXE网络装机服务器(支持UEFI/Legacy双启动)

本文详细介绍了在Ubuntu 22.04上搭建PXE网络装机服务器的完整流程,支持UEFI/Legacy双启动模式。通过配置DHCP、TFTP和HTTP服务,实现无需U盘的高效批量系统部署,解决传统安装方式的介质依赖、版本控制和时间成本问题,显著提升机房维护和设备部署效率。

weixin_42569329的博客 249

configure源码编译提示Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug的解决方法

configure源码编译提示Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug的解决方法

cosann的博客 1315

ArcGISPro应用指南:ArcGISPro制图全流程详解

本文介绍了基于ArcGIS Pro的地图制作基本流程,旨在帮助读者快速掌握从数据加载到地图输出的完整制图操作。文章首先简要概述了GIS技术在当今数据驱动时代的重要作用,并引出ArcGIS Pro作为专业GIS平台的优势与应用价值。随后,内容围绕地图制作的核心步骤展开,包括数据加载、布局创建、地图范围设置以及各类地图要素(如指北针、比例尺、图例、图名)的插入与样式调整。此外,还介绍了如何通过添加图形、文本及动态元素增强地图表达效果,并最终完成地图导出设置与文件输出格式的选择。

weixin_45812624的博客 1358

按装 autoconf 出现 需要安装m4-1.4.16.tar.gz的错误

root@suzgc # /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl Configuring for: PHP Api Version:         20100412 Zend Module Api N...

weixin_34348805的博客 1881

从网口变压器到TVS管:手把手设计通过4KV浪涌的以太网电路

本文详细解析工业级以太网接口4KV浪涌防护设计,从网口变压器选型到TVS管布局,提供通过IEC61000-4-5标准测试的完整方案。重点介绍Bob Smith电路优化和PCB设计技巧,帮助工程师有效应对雷电感应和设备开关瞬态干扰,确保工业设备稳定运行。

study的专栏 285

GD32F4x芯片加密实战:从读保护到安全启动全解析

本文详细解析了GD32F4x芯片加密的实战操作,从读保护功能到安全启动全流程。通过具体代码示例和应用场景分析,帮助开发者有效防止固件被盗用,提升工业控制、智能门锁等场景下的数据安全性。重点介绍了读保护功能的底层机制、配置步骤及常见问题解决方案。

weixin_42629671的博客 207

linux怎样安装gnu m4 (version 1.4),opensuse-tcpflow 安装过程

libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap可以在绝大多数类unix平台下工作.Libpcap应用程序框架Libpcap提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap可以在绝大多数类unix平台下工作,参考资料 A 中是对基于 libpcap 的网络应用程序的一个详细列表。在window...

weixin_42410317的博客 686

matlab kwave模拟超声换能器学习笔记

kwave模拟超声换能器的学习笔记,从零开始造车轮

SolvingMaster的博客 3198

交叉编译qt以及相关依赖软件

当前系统:ubuntu20 桌面版本机软件安装:make cmake安装目录 -extprefix /home/virtual/aarch64-qt逻辑目录 -sysroot /home/virtual/sysroot将交叉编译器放到逻辑目录编译qt,缺少openssl opengl fctix-qt解决。

WenCoo的博客 3576

【学习记录】IIC驱动ICM42670+卡尔曼滤波+四元数姿态角解算

ICM42670陀螺仪可以使用iic驱动,单片机平台使用GD32f305VE。

liarsup的博客 8267

YOLOv8改进策略【Conv和Transformer】| CVPR-2023 BiFormer 稀疏自注意力,减少内存占用

本文记录的是利用双级路由注意力机制优化的目标检测网络模型。传统的复杂度高,随着输入空间分辨率增加,计算量呈平方增长,导致严重的可扩展性问题。而本文所使用的在获取全局信息的同时,通过区域到区域路由和令牌到令牌注意力的合理设计,减少了不必要的计算量。BiFormer: Vision Transformer with Bi-Level Routing Attention采用四阶段金字塔结构,与一些先进的视觉Transformer类似。在每个阶段,首先使用重叠的补丁嵌入(在第一阶段)或补丁合并模块(在第二到第四阶段

Limiiiing的博客 614

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第三章<用Autoconf配置你的项目>

因为对于原本的Autoconf框架,Automake和Libtool本质上是追加的组件,花费一些时间使用Autoconf而不使用Automake和Libtool是有用的。通过暴露这个工具的那些经常被Automake隐藏的部分,提供给你关于Autoconf如何运作相当多的见解。   在Automake出现之前,Autoconf是被单独使用的。实际上,很多遗留的开源软件项目从没有做从Autoco

Johnson的技术博客 4157

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

Automake 学习笔记之一:The Introduction / Example Of GNU Autoconf, Automake And Libtool

Autoconf/automake/libtool是GNU Autotools家族里用来自动生成makefile 和 configure的工具, 有了它, 我们就不用去写那么繁琐的各种角本文件,用它我们就可以自动生成各个角本文件,来管理和组织我们的代码项目。Autotools不但是一个工程建设系统,也可以用来做一些系统环境兼容性检测。 正因为有了它, 我们可以用 1. ./configure 2. Make 3. make install 这三步曲去编译我们的项目。下面来用一个很简单的hello autoc

Bean Huo 834

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Introduction to GNU build tool

IntroductionSoftware is generally developed to be used on multiple platforms. Sinceeach of these platforms have different compilers, different includefiles, thereis a need to write Makefiles a

hotsolaris的专栏 558

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

2 An Introduction to the Autotools

2.4 A Small Hello World automake 源码包提供了一个amhello-1.0.tar.gz源码包,在automake-1.16.1/doc/路径中有解压缩的amhello。包含如下所示的几个文件: ubuntu@ubuntu:~/Workspace/automake-1.16.1/doc/amhello$ ll total 24 drwx------ 3 lgd lgd...

lgd370323的专栏 622

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux | Bash Shebang 语法与结构及常见问题排查

……

u013669912的博客 1161

GNU项目管理工具make、autoscan、autoupdate、aclocal、autoconf、automake、configure.ac、Makefile.am简明教程

在Linux环境下编程,Makefile是不可回避的,手写一个Makefile文件或许难度不高,如果要写一个符合自由软件惯例的Makefile就没那么容易了。在工程根目录下命令行执行autoscan命令,他会扫描当前目录下的源代码文件,生成configure.scan文件。在工程更目录下执行 automake 命令,生成 Makefile.in 文件。在工程更目录下执行 configure 命令,生成 Makefile 文件。在工程更目录下执行 aclocal 命令,生成 aclocal.m4文件。

ctbinzi的专栏 1088

基于GNU的autoconf

工作流程: autoscan→ aclocal→ autoheader→ libtoolize --automake --copy --debug --force→ automake --add-missing→ autoconf 用户需要编写的只有configure.ac(configure.in)和Makefile.am NOTE:configure.in是旧版本的写

veson258的专栏 981

linux之autoconf(1)基础介绍

介绍Autoconf、automake等autotools工具的基本常识,以及如何在编译流程中的作用

梅花香自苦寒来,宝剑锋从磨砺出。 3938

GNU构建系统和Autotool

经常使用Linux的开发人员或者运维人员,可能对configure->make->make install相当熟悉。事实上,这叫GNU构建系统,利用脚本和make程序在特定平台上构建软件。这种方式成为一种习惯,被广泛使用。本文从用户视角和开发者视角详细说明,这种构建方式的细节,以及开发者如何利用autoconf和automake等工具(autotools)创建兼容GNU构建系统的项目。为了简化可移植构建的难度,在早期有一套autotools工具帮助程序员构建软件。

qq_40067649的博客 1590

Autoconf简介

Autoconf是一个用于生成shell脚本的工具,可以自动配置软件源代码以适应多种类似POSIX的系统。为了让你的软件包在所有的不同系统上都可以进行编译。 GNU 构建系统 Autoconf解决了系统特使构建和运行时信息的难题,但在软件开发时还有更多的难题,GNU构建系统是为了更好的开发软件而开发的一套完整的公益事业。 主要组成部分有Autoconf、Automake和Libtool。 Auto...

ignorantshr的博客 1万+

Autoconf 工具说明及使用详解

Autoconf是GNU构建系统的核心工具,用于生成跨平台编译的configure脚本。其工作流程包括编写configure.ac文件,通过autoconf转换为Shell脚本,生成config.h和Makefile

浩瀚之水的专栏 695

【GNU】《GNU Autoconf》基础----未消化

原文:https://www.jianshu.com/p/bbffda22fee8 第二章 如何运行configure以及Makefile标准 2.1 configuring 讲解了./configure 命令的用法,列举了典型的命令参数 如 '--prefix=prefix' 用来指定路径 示例:./configure --prefix=/opt...

小鱼菜鸟的博客 172

自动生成 Makefile 的全过程详解! automake/autoconf 入门

automake/autoconf 入门作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile ,如果要想写出一个符合自由软件惯例的Makefile 就不那么容易了。在本文中,将给大家介绍如何使用autoconf 和automake 两个工具来帮助我们自动地生成符合自由软件惯例的Mak

babyyang1213的专栏 983
上一篇: What is COM, COM+? (什么是COM, COM+?)
下一篇: The GNU Build System
letshi
博客等级 码龄16年 3粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值