作者shininglion (lionking - 辛巴)
看板NCTU_CS_EDA
標題[心得] autoconf - 自動產生 Makefile 的好東西 (1)
時間Mon Feb 13 16:41:31 2012
說是好東西但其實我被他折磨了 5 小時Orz
不知道大家有沒有去網路上下載別人的 project 回家自己編過?
通常那種 project 的編譯方式是這樣:
$ ./configure (視情況加上一些參數)
$ make
$ make install (如果想安裝在系統上的話)
這種 project 通常為了要能夠省下大幅的打指令+手殘問題
以及為了確保你在 compile 這個 project 前的準備工作有做完
(例如檢查該裝的程式或是這個 project 會用到的 library 等等)
所以會有一個 script (就是上面提到的 configure) 去檢查這些事情
此時
如果檢查通過,則會依照你系統的狀態產生相對應的 Makefile
不然會有 error message 告訴你哪裡出問題~
而 autoconf 就是幫妳做到這件事情的工具!
並且這也是為什麼這種 project 不是直接給你 Makefile 的原因所在
因為 Makefile 不適合用來做到以上的檢查工作
並且寫起來也比較囉嗦~
------ 以上賺 P 幣結束 ------
autoconf 其實是個很複雜的鬼東西,不過如果只是小型的 project
那其實就不難,短短幾行就可以結束的事情
首先,我們需要安裝以下套件:
autoconf, automake, m4, perl
再來,簡單的說明一下整個的流程:
1. 先利用 autoscan (上面那些東西裝完就會有的)
在 project 的根目錄執行一次,執行完後會看到 configure.scan 這個檔案
再來把她改名成 configure.ac 或是 cofigure.in
以下假設檔名改為 cofigure.ac
2. 修改 configure.ac 成你要的內容
稍後再說明要怎麼改
3. 開新檔案並命名成 Makefile.am,再依據你的 project 填入必要資訊
4. 依序執行以下指令
$ aclocal
$ autoconf
$ automake --add-missing
這樣就會看到資料夾裡出現 configure 這個 script 啦!
出現之後的編譯步驟就照一開始提到的作法
讓這個 script 跑出你要的 Makefile 後就可以了!
(如何修改 configure.ac 及 Makefile.am 下集待續)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.241.158
推 sanctitysky:分兩篇賺嗎? 02/13 17:25
→ shininglion:寫在同一篇太長了XD 02/13 17:57