详解Linux下auto工具制作Makefile源码包(工具安装篇)

一、引子

最近学习安装源码包,然后公司开发也需要制作源码包,所以就稍微学习了一下automake与autoconf制作configure以及Makefile。感觉作为一个linux开发人员,不知道制作源码包,真是妄为linux人呐!学习的同时,就顺便整理了一下网上的资料,并记录下来,供以后查阅,也为方便初学者。

题目说的有点大了,其实只是笔记而已,只供菜鸟使用。

咱们都知道make好用,但是大型的软件make是很麻烦的,为了解决这个问题,先人们就发明了autoconf与automake工具,用这些工具可以非常方便的制作configure与Makefile,那么咱们就开始这个美妙之旅吧。

二、概述和基础知识

在Linux下得到一个以源代码形式发布的包(一般为.tar.gz或.tar.bz2格式),我们可以用 ./confiugure、make、make install来编译安装,其中在运行./configure的时候还可以根据自己的需要加入不同的参数(可用./configure --help来查看参数表)。

那么究竟这些configure,Makefile是从哪儿来的呢?刚开始安装过源码包的人估计都会犯嘀咕,其实就是通过autoconf与automake等工具生成的。

三、工具软件介绍

废话还是少说,简单的说下automake与autoconf工具。我们说要安装下面至少四个软件,我是说至少,当然有可能在安装的过程中还要安装其他软件,脑瓜灵活点儿

这个四个就是Automake、autoconf、m4、perl,如果你需要sharedlibrary,那么不好意思,你还要装Libtool。这些工具都是干什么的?且听我一一到来。

automake用来生成Makefile.in文件。

autoconf是用来产生configure文件的。

m4主要用来提供生成aclocal.m4文件所需要的库,具体什么是m4,人家都说就是macro,也就是说m后面有四个字母,这虽然有点扯,但是姑且信之。

perl呢?就是在制作Makefile的过程中要用到perl脚本,所以得安装这个库。其他的就不多介绍了,都是成人了。

四、工具软件的安装

上面也已经介绍的差不多了,我想大多数人都会安装,为了方便你我他,我还是记录下来为妙。首先,我悄悄的把这些源码包下载的地址告诉大家,一条龙服务:

各软件下载地址:

automake-1.8.tar.gz下载地址:http://ftp.gnu.org/gnu/automake/
m4-1.4.14.tar.bz2下载地址:    http://ftp.gnu.org/gnu/m4/
autoconf-2.66.tar.bz2下载地址:    http://ftp.gnu.org/gnu/autoconf/
perl-5.14.0.tar.gz下载地址:    http://www.perl.org/get.html#unix_like
libtool-1.3.2.tar.gz下载地址:    http://ftp.gnu.org/gnu/libtool/

上面的版本仅供参考,我只是想告诉你地址而已。

其实安装源码包也非常简单,就是那些依赖有些恼火。所以在安装源码包前阅读INSTALL或者 README是一个良好的习惯。安装之前可以用“locate 软件名”来查看是否安装,如果找到了再/usr/bin/下面,那就不用再安装了,也可以用“软件名 --version”来查看软件的版本。

1、 安装autoconf

解压autoconf-2.66.tar.gz,进入autoconf-2.66文件夹,执行命令:

#./configure

#make

#make install

这也是三部曲了。如果不出错那么安装就完成了,如果出错可以找相应的解决办法。看看安装在哪里可以用命令:locate autoconf,用autoconf –version可以查看版本。

2、安装automake

automake-1.8的安装需要依赖autoconf,所以autoconf版本必须在2.58以上,这里上一步骤我们用autoconf-2.66

解压automake-1.8.tar.gz,进入automake-1.8目录,执行如下命令:

[root@localhost perl-5.14.0]# ./Configure -des -Dprefix=$HOME/localperl

[root@localhost perl-5.14.0]# make test

[root@localhost perl-5.14.0]# make install

虽然这几个命令怪怪的,但是这是从INSTALL中看的,我相信它。

3、安装m4

安装m4时候有可能会出现/m4-1.4.14/src/path.c:118: undefined reference to `S_ISDIR'的错误,据网上传说这是个bug,要想解决这个问题,有两种方法:

a、修改m4目录下的源文件path.c,

打开path.c

在#include "m4.h"后面加上#include "sys/stat.h"。

b、在http://bugs.gentoo.org/332839下载patch,用patch命令打上补丁,这里的补丁比较简单,我们就用方法a。

打上补丁后就可以按照常规方法安装了

#./configure

#make

#make install

4、安装libtool

解压# tar xvzf libtool-1.3.2.tar.gz,再用cd进去 # cd libtool-1.3.2

然后进行安装软件的三部曲:

[root@localhost libtool-1.3.2]# ./configure

[root@localhost libtool-1.3.2]# make

[root@localhost libtool-1.3.2]# make  install

这个安装比较顺利,风调雨顺,一路快马加鞭就成功了。

基本上我们要制作makefile文件的工具已经安装成功了,大功告成!

相关推荐