实例解析 Automake 的使用

 根据官方网站的介绍, automake 是一个根据 GNU 代码标准自动生成 Makefile.in文件的工具,个人理解它就是一个自动生成 Makefile 文件的小工具。下面的示例将通过它自动生成Makefile.in,并最终生成可执行文件。

1,首先在tt 上当下建立一个dir1文件夹,在此文件夹下建立四个文件,分别如下:

//code1.h
#include<stdlib.h>
void foo_a();

//code1.c
#include "code1.h"
void foo_a()
{
    printf(
"This is code1. ");
}


//code2.h
#include<stdlib.h>
void foo_b();

//code2.c
#include "code1.h"
#include 
"code2.h"
void foo_b()
{
    printf(
"This is code2. ");
}


int main()
{
    foo_a();
    foo_b();
}



2,在tt目录下建立configure.in文件(可用autoscan):
#指定项目的一个源文件
AC_INIT(dir1
/code2.c)

#指定项目名称和版本号
AM_INIT_AUTOMAKE(prog1, 
0.0.1)

#检查编译器
AC_PROG_CC

#输出Makefile文件
AC_OUTPUT(Makefile
 dir1
/Makefile
)


3,同时建立tt目录下的Makefile.am文件,这个文件很简单,就一句话:

 SUBDIRS=dir1

 

然后建立dir1目录下的Makefile.am文件,这才是真正起作用的Makefile.am文件:

bin_PROGRAMS=prog1
prog1_SOURCES
=code1.c code2.c


4,完成之后,为了方便操作,再写一个autogen.sh文件,保存在tt目录下。

#!/bin/sh
aclocal

autoconf

automake 
-a

   cd ./dir1

   make


存盘之后,用chmod +x改成可执行文件。然后执行autogen.sh。

 $chmod +x autogen.sh
  $./autogen.sh

 

即可在tt目录下生成configure和makefile文件,同时在dir1目录下也会生成一个makefile文件。进入dir1目录,就可以看到生成的prog1程序。如果再执行make install,prog1将被安装到缺省的/usr/local/bin目录下去。







阅读更多

没有更多推荐了,返回首页