圖1. 生成Makefile流程圖html
本文以"hello world"程序爲例,簡單說明linux下源代碼包(.tar.gz)的製做。linux
在此,謹以說明源代碼包的製做過程。
首先,確保你的系統裝有如下GNU軟件:
Automake
Autoconf
m4
perl
libtool
1.新建一目錄,將你的源代碼放在此目錄下,如下的操做均在此目錄裏進行。
shell>; mkdir hello
2.執行autoscan命令來掃描源代碼。
shell>;autoscan
執行該命令後會生成configure.scan 和configure.log文件。
3.修改configure.scan文件。
shell>;vi configure.scan
添加,修改如下幾行,其它的註釋掉。
AC_INIT(hello.c) //括號內爲你的源代碼.
AC_PROG_CC
AM_INIT_AUTOMAKE(hello,1.0) //括號內hello爲文件名,1.0爲版本號.
AC_OUTPUT(makefile) //在括號內加入makefile.
保存文件,並修改此文件名爲configure.in
shell>;mv configure.scan configure.in
4.運行aclocal命令,以後會生成aclocal.m4文件。
shell>;aclocal
5.運行autoconf命令,以後會生成autom4te.cache目錄和configure可執行文件。
shell>;autoconf
6.本身編寫makefile.am文件。
shell>;vi makefile.am
此文件格式爲:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c
固然,有興趣你也可對makefile.am文件進行擴展。
7.用automake --add-missing加入一些生成標準的軟件包所必需的文件。
shell>;automake --add-missing
8.執行configure文件。 會生成make所需的makefile及其它文件。
shell>;./configure
9.用make編譯,後已生成可執行文件hello,但只能在當前目錄下用./執行。要想在任何目錄都能執行,還要進行make
install.下述。
shell>;make
10.make install,將可執行文件寫入/usr/local/bin下。
shell>;make install
11.最後一步,打包。會生成 .tar.gz的包,注意,這個包並不是是用tar命令生成的。
shell>;make dist
至此,一個簡單的源代碼包製做完畢。ls
看一下,會有一個hello-1.tar.gz的源代碼包生成了。
佳文推薦:
http://blog.chinaunix.net/u2/79955/showart_1830365.html
http://hi.baidu.com/zhanglei_186/blog/item/abe75b5c8cafc745faf2c008.htmlshell