automake/autoconf工程管理

目录结构

最顶层目录名用模块名称,这里是test

源文件放在模块下的src子目录里,这里是test/src

 

创建源文件

在src下创建test.c

 

 

 

创建Makefile模板

创建test/Makefile.am,内容如下:

SUBDIR=src

表示其下有一个src子目录,若有多个子目录,用空格分开

创建test/src/Makefile.am,内容如下:

bin_PROGRAMS=test

test_SOURCES=test.c

 

am扩展名是automake的简称,它是 automake用来产生Makefile.in文件的模板。

 

创建autoconf的模板

在test里运行sudo autoscan,生成文件autoscan.log和configure.scan,将configure.scan重命名为configure.in:

sudo mv configure.scan configure.in

打开configrure.in并作修改:

 

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([src/test.c])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT

 

修改成:

 

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
AC_INIT(test, 0.1, xxx@xxx.com)
AC_CONFIG_SRCDIR([src/test.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(test, 0.1)
# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile
                 src/Makefile])
AC_OUTPUT

 

复制所用到的宏

sudo aclocal

生成aclocal.m4文件和autom4te.cache文件夹

 

生成配置头文件的模板

sudo autoheader

生成config.h.in文件

 

创建几个必要的文件

README

NEWS

AUTHORS

ChangeLog


生成Makefile.in和所需要的脚本

sudo automake -a

 

生成configure脚本

sudo autoconf

autoconf调用m4(即macro)展开configure.in中的宏,生成configure脚本。

 

生成最终的Makefile

sudo ./configure

configure有以下两个常用的参数:

--prefix用来指定安装目录,Linux下默认的安装目录是/usr/local

--host用于交叉编译,比如x86的PC机上编译在ARM板上运行的程序

如:sudo ./configure --host=arm-linux

 

编译

sudo make

 

安装

sudo make install

 

发布软件包

sudo make dist或sudo make distcheck

生成test-0.1.tar.gz软件包

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值