Chinaunix首页 | 论坛 | 博客
  • 博客访问: 234985
  • 博文数量: 24
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-22 12:12
文章分类

全部博文(24)

文章存档

2011年(1)

2010年(5)

2009年(2)

2008年(16)

我的朋友

分类: C/C++

2010-06-18 13:48:28

automake 实例 helloworld
 
[dev@centos-252 tmp]$ uname -a  //环境
Linux centos-252 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux
[dev@centos-252 tmp]$ mkdir helloworld && cd helloworld
[dev@centos-252 helloworld]$ vi helloworld.c
[dev@centos-252 helloworld]$ cat helloworld.c                                                                           
#include
#include
int
main(void)
{
            printf("Hello, world\n");
                    exit(0);
}
[dev@centos-252 helloworld]$ autoscan  //生成autoscan.log与configure.scan
autom4te: configure.ac: no such file or directory
autoscan: /usr/bin/autom4te failed with exit status: 1
[dev@centos-252 helloworld]$ ls
autoscan.log  configure.scan  helloworld.c
[dev@centos-252 helloworld]$ cp configure.scan configure.ac  //生成configure.ac
 
[dev@centos-252 helloworld]$ vi configure.ac
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(hellworld, 1.0, )   //修改
AM_INIT_AUTOMAKE(hello,1.0)                      //增加
AC_CONFIG_SRCDIR([helloworld.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CONFIG_FILES([Makefile])                      //增加
AC_OUTPUT
 
[dev@centos-252 helloworld]$ aclocal            //生成aclocal.m4与autom4te.cache文件
[dev@centos-252 helloworld]$ ls
aclocal.m4  autom4te.cache  autoscan.log  configure.ac  configure.scan  helloworld.c
[dev@centos-252 helloworld]$ autoheader          //生成config.h.in文件
[dev@centos-252 helloworld]$ ls
aclocal.m4  autom4te.cache  autoscan.log  config.h.in  configure.ac  configure.scan  helloworld.c
[dev@centos-252 helloworld]$ vi Makefile.am      //创建文件Makefile.am
  1 AUTOMAKE_OPTIONS= foreign
  2 bin_PROGRAMS = helloworld
  3 hello_SOURCES = helloworld.c
 
[dev@centos-252 helloworld]$ automake --add-missing  //生成install-sh, missing, depcomp文件
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
Makefile.am: installing `./depcomp'
Makefile.am:3: variable `hello_SOURCES' is defined but no program or
Makefile.am:3: library has `hello' as canonic name (possible typo)
 
[dev@centos-252 helloworld]$ autoconf                 //生成configure脚本 
[dev@centos-252 helloworld]$ ./configure             //执行configure脚本生成Makefile
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
....
省略
....
 

[dev@centos-252 helloworld]$ make
make  all-am
make[1]: Entering directory `/home/dev/tmp/helloworld'
if gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -MT helloworld.o -MD -MP -MF ".deps/helloworld.Tpo" -c -o helloworld.o helloworld.c; \
        then mv -f ".deps/helloworld.Tpo" ".deps/helloworld.Po"; else rm -f ".deps/helloworld.Tpo"; exit 1; fi
gcc  -g -O2   -o helloworld  helloworld.o 
make[1]: Leaving directory `/home/dev/tmp/helloworld'
[dev@centos-252 helloworld]$ ./helloworld
Hello, world
阅读(1085) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~