每一個(gè) rules 文件,就像其他的 Makefile 一樣,包含著若干條 rules,其中每一個(gè)都定義了一個(gè) target 以及其具體操作。 一個(gè)新的 rule 以自己的 target 聲明開(kāi)頭,后續(xù)的行都以 TAB 開(kāi)頭,以指示 target 的具體行為。
當(dāng)你想要執(zhí)行一個(gè) rule 的時(shí)候,就將 target 名稱作為命令行參數(shù)來(lái)調(diào)用。比如說(shuō),debian/rules clean binary 會(huì)執(zhí)行 clean 和 binary 兩個(gè) target。
以下是對(duì)各 target 的簡(jiǎn)單解釋:
-
clean(必需):清理所有編譯的、生成的文件或編譯樹(shù)中無(wú)用的文件。 -
build(必需):在編譯樹(shù)中將代碼編譯為程序并生成格式化的文檔。 -
build-arch(必需):在編譯樹(shù)中將代碼編譯為依賴于體系結(jié)構(gòu)的程序。 -
build-indep(必需):在編譯樹(shù)中將代碼編譯為獨(dú)立于平臺(tái)的格式化文檔。 -
install(可選):把文件安裝到debian目錄內(nèi)為各個(gè)二進(jìn)制包構(gòu)建的文件樹(shù)。如果有定義,那么binary*target 會(huì)依賴于此 target。(可選) -
binary(必需):創(chuàng)建所有二進(jìn)制包(是binary-arch和binary-indep的合并)。 -
binary-arch(必需):在父目錄中創(chuàng)建平臺(tái)依賴(Architecture: any)的二進(jìn)制包。 -
binary-indep(必需):在父目錄中創(chuàng)建平臺(tái)獨(dú)立(Architecture: all)的二進(jìn)制包。 -
get-orig-source(可選):從上游站點(diǎn)獲得最新的原始源代碼包。
其中:
-
debian/rules clean運(yùn)行了dh clean,其實(shí)際執(zhí)行的命令為:- dh_testdir
- dh_auto_clean
- dh_clean
-
debian/rules build運(yùn)行了dh build,其實(shí)際執(zhí)行的命令為:- dh_testdir
- dh_auto_configure
- dh_auto_build
- dh_auto_test
-
fakeroot debian/rules binary執(zhí)行了fakeroot dh binary,其實(shí)際執(zhí)行的命令為:- dh_testroot
- dh_prep
- dh_installdirs
- dh_auto_install
- dh_install
- dh_installdocs
- dh_installchangelogs
- dh_installexamples
- dh_installman
- dh_installcatalogs
- dh_installcron
- dh_installdebconf
- dh_installemacsen
- dh_installifupdown
- dh_installinfo
- dh_installinit
- dh_installmenu
- dh_installmime
- dh_installmodules
- dh_installlogcheck
- dh_installlogrotate
- dh_installpam
- dh_installppp
- dh_installudev
- dh_installwm
- dh_installxfonts
- dh_bugfiles
- dh_lintian
- dh_gconf
- dh_icons
- dh_perl
- dh_usrlocal
- dh_link
- dh_compress
- dh_fixperms
- dh_strip
- dh_makeshlibs
- dh_shlibdeps
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
fakeroot debian/rules binary-arch執(zhí)行了fakeroot dh binary-arch。 -
fakeroot debian/rules binary-indep執(zhí)行了fakeroot dh binary-indep,這會(huì)運(yùn)行幾乎和fakeroot dh binary一樣的命令,但dh_strip、dh_makeshlibs和dh_shlibdeps除外,其他命令則均附加-i選項(xiàng)。
假設(shè)上游存在一個(gè) Makefile 的環(huán)境,dh_auto_build 會(huì)使用 make 命令執(zhí)行 Makefile 中的第一個(gè) target。
參考文獻(xiàn):
[1] debian 目錄中的必須內(nèi)容
[2] 使用fakeroot模擬root權(quán)限執(zhí)行程序