zoukankan      html  css  js  c++  java
  • 详解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文件的工具已经安装成功了,大功告成!

  • 相关阅读:
    六十三:CSRF攻击与防御之系统准备之登录与转账功能
    六十二:CSRF攻击与防御之系统准备之注册功能
    六十一:Flask.Session之flask操作session
    并发编程之多进程篇之二
    并发编程之多进程篇之一
    网络编程之文件传输实例
    网络编程基础之粘包现象与UDP协议
    网络编程基础之Socket套接字简单应用
    TCP协议的三次握手和四次挥手
    网络编程基础之Socket套接字
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318317.html
Copyright © 2011-2022 走看看