快速业务通道

用autoconf和automake生成Makefile文件

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-04

autoconf和automake可以扫描源代码文件,自动生成configure和Makefile文件,可以减少一些重复劳动.设想做个简单测试,在源代码目录下有2个目录,include和main,分别是头文件和源代码,预想达到的目标是用autoconf工具集生成Makefile,运行make命令后能够生成可执行目标文件.


目录结构如下:
.
|-- include
| `-- stu.h
`-- main
`-- stu_list.c


include/stu.h:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

#ifndef __STUDENT_H_
#define __STUDENT_H_

struct student {
int no;
char name[32];
};

#endif

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

main/stu_list.c:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

#include <stdio.h>

Empire CMS,phome.net

#include <stdlib.h>
#include "include/stu.h"

int main(int argc, char* argv[])
{
unsigned int i;
struct student stus[] = {
{ 1, "aaa" },
{ 2, "bbb" }
};

for (i = 0; i < sizeof(stus)/sizeof(stus[0]); i ) {
printf("-- % 3d --> %sn", stus[i].no, stus[i].name);
}

exit(0);
}

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

下面是生成Makefile的步骤:

1) 运行autoscan命令

2) 将configure.scan 文件重命名为configure.in,并修改configure.in文件

3) 在当前目录下新建Makefile.am文件,并在main目录下也新建makefile.am文件 4) 在当前目录下新建NEWS、 README、 ChangeLog 、AUTHORS文件

5) 将/usr/share/automake-1.X/目录下的depcomp和complie文件拷贝到本目录下

6) 运行aclocal命令

7) 运行autoconf命令

8) 运行autoheader命令

Empire CMS,phome.net

9) 运行automake -a命令

10) 运行./confiugre脚本

configure.in要修改的内容包括:

将AC_CONFIG_HEADER([config.h])修改为:AM_CONFIG_HEADER(config.h), 并加入AM_INIT_AUTOMAKE(mytest,1.0).在AC_OUTPUT输入要创建的Makefile文件名.

修改后的configure.in:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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

AC_PREREQ([2.65])
AC_INIT(mytest, 1.0, xxxx@hotmail.com)
AC_CONFIG_SRCDIR([include/stu.h])
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(mytest, 1.0)

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.
AC_CHECK_HEADERS([stdlib.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT(Makefile main/Makefile)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号