詳解Linux下auto工具製作Makefile原始碼包(工具安裝篇)
收藏於 2012-03-25
遷移自個人的百度空間
-------------------------------
一、引子
咱們都知道make好用,但是大型的軟體make是很麻煩的,為了解決這個問題,先人們就發明了autoconf與automake工具,用這些工具可以非常方便的製作configure與Makefile,那麼咱們就開始這個美妙之旅吧。
相關閱讀: 詳解Linux下auto工具製作Makefile原始碼包(製作篇) http://www.linuxidc.com/Linux/2011-05/36615.htm
二、概述和基礎知識
在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目錄,執行如下命令:
[[email protected] perl-5.14.0]# ./Configure -des -Dprefix=$HOME/localperl
[[email protected] perl-5.14.0]# make test
[[email protected] 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
然後進行安裝軟體的三部曲:
[[email protected] libtool-1.3.2]# ./configure
[[email protected] libtool-1.3.2]# make
[[email protected] libtool-1.3.2]# make install
這個安裝比較順利,風調雨順,一路快馬加鞭就成功了。
基本上我們要製作makefile檔案的工具已經安裝成功了,大功告成!