Autoconf生成的configure脚本需要一些关于如何进行初始化,诸如如何寻找包的源文件,的信息;以及如何生成输出文件的信息。本文主要介绍了autoconf、automake以及rpm包的制作过程
Autoconf rpm***步:
在root下建立目录hello-cxf-1.0,然后在该目录下新建子目录src和doc(doc几乎存放一些文档,但在这里暂时为空)。
#mkdirhello-cxf-1.0
#cdhello-cxf-1.0
#mkdirsrc
#mkdirdoc
Autoconf rpm第二步:
在src目录下编辑文件main.c
#cdsrc
#vimain.c
#include<stdio.h>
intmain(void)
{
printf("thisishello-cxf-1.0testing!\n");
return0;
}
Autoconf rpm第三步:
回到hello-cxf-1.0目录下,编辑configure.ac(或者叫做configure.in)和Makefile.am文件。
configure.ac的例子:
AC_PREREG(2.59)
#AC_INIT(FULL-PACKAGE-NAME,VERSION,BUG-REPORT-ADDRESS)
AC_INIT(hello-cxf,1.0)
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADER([src/config.h])
#Checksforprograms.
AC_PROG_CC
#Checksforlibraries.
#Checksforheaderfiles.
#Checksfortypedefs,structures,andcompilercharacteristics.
#Checksforlibraryfunctions.
AC_CONFIG_FILES([Makefile
src/Makefile
doc/Makefile
])
AC_OUTPUT
Autoconf rpm第四步:
运行aclocal,它根据configure.ac或者configure.in生成一个“aclocal.m4”文件和一个缓冲文件夹autom4te.cache,该文件主要处理本地的宏定义。
在hello-cxf-1.0目录下运行aclocal。
#aclocal
#ls
Autoconf rpm第五步:
运行autoconf,根据configure.ac和aclocal.m4生成configure脚本。
#autoconf
#ls
Autoconf rpm第六步:
运行autoheader,它负责生成config.h.in文件。该工具通常会从“acconfig.h”文件中复制用户附加的符号定义。即autoheader根据configure.ac,运行m4,生成config.h.in(该文件名由AC_CONFIG_HEADER([src/config.h])的定义而定)
#autoheader
#ls
Autoconf rpm第七步:
使用automake根据Makefile.am和aclocal.m4生成Makefile.in文件,在这里使用选项“—adding-missing”可以让automake自动添加有一些必需的脚本文件,如depcomp,install-sh,missing等。
#automake–adding-missing
Autoconf rpm第八步:
运行./configure根据makefile.in和config.h.in(如果有的话)生成makefile和config.h(如果有config.h.in)文件,及config.status,config.log用于记录检测到的一些状态。即通过运行自动配置设置文件configure,把Makefile.in变成了最终的Makefile。
#./configure
#ls
其中,autoreconf相当于连续执行aclocalautoconfautoheaderautomake--add-missing。
第九步:
运行make,对配置文件Makefile进行测试一下。
#make
….
#ls
#lssrc/
可以看到,在src文件下面生成了main.c的输出文件hello-cxf。
Autoconf rpm第十步:
运行生成的文件hello-cxf
#./src/hello-cxf
thisishello-cxf-1.0testing!
makedist-创建发布包:PACKAGE-VERSION.tar.gz.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/feneyChan/archive/2009/07/26/4380669.aspx
【编辑推荐】
- Autoconf使用关于autoconf安装条件介绍
- Autoconf使用生成Makefile的方法及其规则
- autoconf安装关于可移植的源代码详解
- autoconf安装自动编译工具介绍(3)
- autoconf安装自动编译工具介绍(2)