configure是一个可独立运行的用于生成Makefile的配置脚本文件。本质上和其他的脚本没什么区别,所以也可以自行编写。如果自己去编写的话很麻烦,可以通过autoconf工具来生成。当然Makefile也可以自行编写,通过configure可以不用自己手工去编写Makefile。
configure
想要为程序生成configure配置脚本,需要用到几个工具。
autoscan
aclocal
autoconf
automake
想要通过autoconf工具来生成configure文件,有两个比较重要的文件。
configure.ac
configure.ac也可以是configure.in。这个配置文件可以通过aclocal工具生成。运行aclocal后会生成一个configure.scan文件,需要把这个文件改成configure.ac或者configure.in。这个文件需要根据自己需要进行修改。
Makefile.am
这个文件需要自己创建。
Makefile.am文件的一个例子
INCLUDEES = -I.. -I../log/include
#lib_LIBRARIES = libmath.a
noinst_LIBRARIES = libmath.a
libmath_a_SOURCES = array.c map.c set.c similarity_chebyshev.c similarity_cos.c similarity_euclidean.c similarity_jaccard.c similarity_manhattan.c similarity_minkowski.c vt.c
SUBDIRS = . samples
export INCLUDES
autoconf
初始化configure
宏
AC_INIT (package, version, [bug-report], [tarname], [url])
AC_INIT (unique-file-in-source-dir)
配置
头文件
AC_CONFIG_HEADERS (header ..., [cmds], [init-cmds])
老版本的automake使用AM_CONFIG_HEADER
AM_CONFIG_HEADER
例子
AM_CONFIG_HEADER(config.h)
宏目录
AC_CONFIG_MACRO_DIR (dir)
主机
AC_CANONICAL_HOST
定义变量
AC_DEFINE (variable, value, [description])
AC_DEFINE (variable)
AC_DEFINE_UNQUOTED (variable, value, [description])
AC_DEFINE_UNQUOTED (variable)
检查C编译器
AC_PROG_CC ([compiler-search-list])
检查C编译器-c -o选项
AC_PROG_CC_C_O
检查C编译器-E选项
AC_PROG_CPP
AC_PROG_CPP_WERROR
检查C编译器语言标准
AC_PROG_CC_STDC
AC_PROG_CC_C89
AC_PROG_CC_C99
检查C编译器是否支持'\a'
AC_C_BACKSLASH_A
检查C编译器是否支持const
AC_C_CONST
检查C编译器是否支持__restrict, __restrict__或者_Restrict
AC_C_RESTRICT
检查C编译器是否支持volatile
AC_C_VOLATILE
检查C编译器是否支持inline
AC_C_INLINE
检查char类型是否是unsigned无符号类型
AC_C_CHAR_UNSIGNED
检查C预处理器字符串化操作符#
AC_C_STRINGIZE
例子
#define x(y) #y
检查C编译器是否支持flexible array,即伸缩数组成员
AC_C_FLEXIBLE_ARRAY_MEMBER
检查C编译器是否支持variable-length arrays变长数组
AC_C_VARARRAYS
检查C编译器是否支持GCC typeof
AC_C_TYPEOF
检查C编译器是否支持函数原型
AC_C_PROTOTYPES
如果使用GNU C编译器,并且如果不指定-traditional,ioctl不能正常工作时,添加-traditional到输出变量CC
AC_PROG_GCC_TRADITIONAL
检查头文件
宏
AC_CHECK_HEADERS (header-file..., [action-if-found], [action-if-not-found], [includes])
宏
AC_CHECK_HEADERS_ONCE (header-file...)
检查依赖库
宏
AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])
例子
AC_CHECK_LIB(resolv, inet_aton)
检查函数
宏
AC_CHECK_FUNC (function, [action-if-found], [action-if-not-found])
宏
AC_CHECK_FUNCS (function..., [action-if-found], [action-if-not-found])
宏
AC_CHECK_FUNCS_ONCE (function...)
检查类型
宏
AC_CHECK_TYPE (type, [action-if-found], [action-if-not-found], [includes = ‘AC_INCLUDES_DEFAULT’])
宏
AC_CHECK_TYPES (types, [action-if-found], [action-if-not-found], [includes = ‘AC_INCLUDES_DEFAULT’])
automake
AM_INIT_AUTOMAKE([OPTIONS])
AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
这种形式已废弃
相关推荐
"vim-configure.tar.gz_vim_vim_configure" 是一个包含了 Vim 配置文件的压缩包,旨在帮助用户优化 Vim 的使用体验,提供自动提示、补全功能以及代码高亮等特性。 在 Vim 中配置这些功能,可以使编辑效率大幅提升。...
标题"Qt5 configure参数说明文档"指的是此文档旨在解释和说明如何使用Qt5软件框架中的configure工具的参数。configure是一个用于为特定系统配置源代码树的脚本,以便于编译并安装Qt5及其相关组件。文档中可能会详细...
《libmodbus 3.14:解决configure.js错误详解》 libmodbus是一个流行的开源库,用于实现Modbus通信协议。它支持多种操作系统,包括Linux、Windows和FreeRTOS等,广泛应用于工业自动化、物联网设备以及其他需要进行...
《串口虚拟工具详解——Configure Virtual Serial Port Driver v7.2》 在IT行业中,调试是软件开发过程中不可或缺的一部分,而串口通信作为经典的数据传输方式,在嵌入式系统、工业控制等领域广泛应用。针对这样的...
### Linux的Configure参数详解 #### 引言 在Linux环境下安装软件时,通常需要通过`configure`脚本来完成前期配置工作。这对于确保软件能够正确地适应当前系统环境至关重要。`configure`脚本作为Autoconf工具的基本...
配置脚本`configure`是这个过程中的关键组件,它负责检查目标系统的特性,生成适当的Makefile以适应不同的环境。本文将深入讲解`configure`及其相关工具在Linux软件发布的角色。 `configure`脚本是基于Autoconf工具...
Configure Virtual Serial Port Driver (VSPD)就是这样一款强大的工具,它能够帮助用户创建虚拟串口,以模拟真实的串口功能,进行数据的收发调试。本文将深入探讨VSPD的工作原理、配置方法以及实际应用。 **一、...
### configure和Makefile之间的关系详解 #### 一、引言 在开源软件开发领域,特别是C/C++项目中,构建自动化工具链是非常重要的环节。其中,`configure` 和 `Makefile` 是两个不可或缺的关键组件。本文将深入探讨 ...
而`configure`脚本作为源码安装的重要步骤,是理解和掌握Linux软件安装基础的关键。`configure`脚本通常由`autoconf`工具生成,用于检测系统的特性和配置,以便自动生成适合当前系统的`Makefile`。 `configure`脚本...
制作有lib库的Configure是一项涉及自动化构建工具如Automake、Autoconf等的复杂过程,主要用于在不同平台上构建软件。此过程不仅包括了源代码的管理,还包括了库的创建、应用的编写以及最终构建脚本的自动生成。下面...
### 计算机网络中的Switch#configure terminal命令详解 #### 一、背景介绍 在现代计算机网络中,交换机作为连接各个终端设备的关键组件,在构建局域网(LAN)时发挥着至关重要的作用。通过使用特定的配置命令,网络...
虚拟串口软件安装包Configure Virtual Serial Port Driver
在这个阶段,你需要运行`./configure`脚本来配置编译选项。在标题中提到的配置中,`--prefix`用于设置Nginx的安装路径,默认为`/usr/local/nginx`。你可以根据需要添加其他配置参数。例如: ```bash ./configure...
《VMware vSphere: Install, Configure, Manage v5.1》是面向IT专业人员的高级培训资料,旨在帮助用户深入了解并掌握VMware vSphere 5.1的核心功能和技术要点。本书不仅适用于希望获得VMware Certified Professional...
Linux 操作系统的 Configure 参数解释说明 Linux 操作系统中的 Configure 参数解释说明是软件安装的基础知识之一。Configure 脚本配置工具是 autoconf 的工具的基本应用。它提供了大量的命令行选项,用于配置软件包...
本篇文章将深入探讨"Go-Configure"这一库,它允许开发人员通过多种来源(如 JSON、命令行标志和环境变量)来配置他们的项目。 首先,让我们理解"Go-Configure"的核心功能。这个库旨在简化配置过程,使得项目能够...
开发者需要编写特定的文件,如configure.ac或configure.in(autoconf的配置模板),以及Makefile.am(automake的宏文件),系统会根据这些文件自动生成其他文件,如configure脚本、Makefile.in模板以及最终的...
在myeclipse中,在项目上右键Configure->Convert to Maven Project,但是现在使用的是MyEclipse,在项目上右键,没有发现Configure菜单