
筆者去年認識一位年紀稍長的大哥,對方想要將手邊的 MUD 遊戲重新運行服務,因為沒有程式開發基礎不得其門而入才找上我幫忙。在接手了該份年代久遠的程式專案後,發現其中有許多 Makefile 的檔名後綴看起來既熟悉又陌生。
順手搜尋了一下,發現像是用於快速搜索規模純文字檔案的 glimpse 工具,其專案倉庫中也有這些文件:
hsins@nuc-twn-znr01:/opt/sources/glimpse/4.18.5-1 $ ls Make*
Makefile Makefile.NeXT Makefile.alpha Makefile.hp Makefile.in Makefile.linux
Makefile.org Makefile.rs6000 Makefile.sgi Makefile.solaris Makefile.sunos
hsins@nuc-twn-znr01:/opt/sources/muds/3y $ ls Make*
Makefile.aix Makefile.hp Makefile.lin Makefile.mip Makefile.nex Makefile.sol Makefile.tra
稍微查了一下,才知道原來這些不同後綴的,是為了確保在不同的系統上能夠正確地構建程式碼而有的。比如:
Makefile
:通用的 Makefile 文件,適用於各種系統。Makefile.aix
:適用於 IBM AIX 系統。Makefile.hp
:適用於 HP-UX 系統的。Makefile.lin
:適用於 Linux 系統。Makefile.mip
:適用於 MIPS 架構系統的。Makefile.nex
:適用於 Nexenta 系統。Makefile.sol
:適用於 Solaris 系統。Makefile.tra
:適用於 Tru64 UNIX 系統。
看來還是自己生不逢時,少見多怪了……
順帶一提的是這些文件的檔案名稱後綴,並沒有一致的寫法,比如
Makefile.solaris
和 Makefile.sol
都可以猜測出是適用於 Solaris 作業系統的文件。畢竟對於大多數的作業系統來說,這些檔案名稱後綴都是「約定成俗」的,實際上還是需視文件是由什麼程式運行。
張貼留言