Next Previous Contents

3. 使用 Make

Makefile 是建立過程的重點. 在它的最簡單的形式, Makefile 就是個 script ,它是用來編譯或建立"二元碼",套件的可執行部分. Makefile也可以提供軟體套件升級的工具,而不需要重新編譯每一個在套件中的原始檔案, 但其有不同的情況(或是不同的約定).

某些特點是, Makefile 開啟 ccgcc. 這實際上是個前處理器, C (or C++) 編譯器, 和 連結器, 按照那個順序. 這過程轉換原始碼(source)為可真正去執行的二元碼(binaries).

下指令 make 通常只要鍵入 make. 這通常建立討論中的套件所有需要的可執行檔. 然而, make 也做其他工作,像是安裝檔案至合適的目錄 (make install) 而且刪除舊的 object 檔案 (make clean). 執行 make -n 允許預覽建立過程, 就是列出所有 make 所喚起的(triggered)所有命令, 但沒有真的去執行它們.

只有在最簡單的軟體使用一般性的 Makefile. 較複雜的安裝需要根據函式庫(libraries), include 檔案以及你個別機器資源所在目錄來量身定製. 這特別是當需要 X11 libraries 來安裝建立時. Imakexmkmf 可完成這樣的工作.

引用自 man page,Imakefile 是個"模板(template)"的 Makefile. imake 工具參考 Imakefile 根據你的系統造出合適的 Makefile. 然而,幾乎在所有的情況下,你要執行 xmkmf, 它是要下 imake 指令用的 shell script, 也就是個前端介面(front end). 察閱一下內附在軟體檔案間的 README 或 INSTALL 檔案以取得特別的指示. 至於更詳細的步驟分析,請閱讀 imake 和 xmkmf 的 man pages.

要知道的是 xmkmfmake 可能需要以 root 身分來下指令, 特別是當 make install 來搬移二元碼到 /usr/bin/usr/local/bin 目錄. 以一般使用者的身分而不具 root 權力 來使用 make 將可能會導致 write access denied 的錯誤訊息, 因為你缺少寫入(write)至系統目錄的權限. 也檢查一下, 所造出來的二元碼對你與任何其他適用的使用者有適合的執行(execute)權限.

下指令 xmkmf 來使用 Imake 檔案, 建立一個新的而且適合你系統的 Makefile. 正常地下指令 xmkmf 都會附加 -a 引數, 因而自動地做 make Makefiles, make includes,make depend 的動作. 這會設定變數(variables)和給定函式庫(library) 位置給編譯器和連結器. 有時會沒有 Imake 檔案, 引而代之的是有 INSTALLconfigure 的 script, 也會到這樣的目的. 注意的是如果你要執行 configure, 那要下指令 ./configure 以確保在目前目錄下正確的 script configure 是被呼叫. 在大部分的情況, 在發行套件中的 README 檔案會說明安裝步驟.

通常一個好的方法是從外觀檢視一下 Makefilexmkmf 或 其中一個安裝的 scripts 所造出來的. Makefile 正常下會為你的系統而修正, 但你偶而可能需要"旋扭(tweak)"或手動地修正錯誤.

你的一般安裝步驟將會是:


Next Previous Contents