2009年11月27日 星期五

GNU Build System 當中 {bin,noinst,check,EXTRA}_PROGRAMS 使用上的分別

在 Automake 的腳本檔 Makefile.am 裡面,要編寫一個執行檔案的規則可以這樣寫
bin_PROGRAMS = mp3player
mp3player_SOURCES = mp3player.c

這樣在 $ ./configure 之後就可以使用 $ make 編譯出 mp3player 這個執行檔
甚至於 $ make install 還可以幫你安裝到預定的目錄底下
這個預定的目錄是像 $ ./configure --prefix=/opt 這樣指定的
如果沒有特別指定的話,通常預設值都會是 /usr/local

如果只想要編譯出執行檔卻不想要在 $ make install 時,被安裝到預定的目錄底下,在腳本檔應該要這樣寫
noinst_PROGRAMS = mp3player

如果想要在 make 時,不會去編譯執行檔的話,只有在 $ make check 時才會去編譯執行檔,可以這樣寫
check_PROGRAMS = mp3player

如果想要在 $ make 跟 $ make check 都不會去編譯執行檔,只有在 $ make mp3player 時才會去編譯執行檔,可以這樣寫
EXTRA_PROGRAMS = mp3player

更詳細的說明請看 $ info automake

P.S. 有 $ 開頭代表在命令列下輸入的指令
張貼留言