在 Windows 系統裡,常用的 C++ 編譯器大概就是 Visual C++ 和 MinGW 了,但是手動修改與建構編譯環境真的很不易(我找了好久才找到可以在沒有最佳化情況下正常編譯 Firefox),因此,我用批次檔設計了一個全自動建構開發環境的程式,叫做 mozbuildtools ,可在
http://code.google.com/p/mozbuildtools/downloads/list 下載最新版本。
用 7-zip 或 winrar 解開後,盡量放在沒有空格及中文的路徑中,然後點兩下 setup.bat 檔案。批次檔會自動下載 MinGW 所需的建制工具。然後去下載 Firefox 和所需的 patch 。
目前只有最新的 3.2.x 在支援當中。您必須下載 Ver. 0.3 之 patch 才能正常使用。
http://mozbuildtools.googlecode.com/svn/trunk/patches/
找到最接近 trunk 最新版本的 patch (成功機率高),然後再利用 hg 下載原始碼
> hg clone
http://hg.mozilla.org/mozilla-central/ firefox-src
可能要等很久,請耐心稍等
進入 firefox-src 目錄
> cd firefox-src
使用 patch
> patch -p1 < patchname.patch
用記事本建立一個檔案名叫 .mozconfig (務必在記事本程式內使用另存新檔功能儲存,請勿使用修改檔名的方式),可參考 README 內建議的 .mozconfig ,建議將 ac_add_options --enable-optimize="-O3 -march=prescott -freorder-blocks -fno-reorder-functions -msse3 -mmmx -mfpmath=sse -D_FORTIFY_SOURCE=2" 這一行改為
ac_add_options --disable-optimize ,不然編譯過程可能會發生錯誤,或是編譯出來的檔案不能執行。(預計下一版的 README 會改進)
然後還要記得執行 autoconf
> autoconf-2.13
> cd nsprpub
> autoconf-2.13
> cd ..
然後就可以編譯了
> make -f client.mk build
完成後就可在 .mozconfig MOZ_OBJDIR 指定的資料夾中的 dist/bin 找到執行檔。不過經過測試,有些 plugin 無法使用,像是 IETab 擴充元件中所附帶的 plugin 就無法使用,還有 Google toolbar 好像也無法使用。如果執行時會有錯誤訊息,可以另開個 profile (不管有沒有錯誤訊息,建議這麼做)或是以安全模式執行看看。
常見問題:
1. python 無法使用,顯示類似需要重新安裝軟體的訊息?可以嘗試自行下載 python 2.5.4 安裝,如果仍無法解決,可安裝舊版的 python 2.5.2 。記得調整 start-msys.bat 之環境變數。(之前我有遇過一次,不過自從更新到 Windows Vista 之後就沒遇過了,這裡是我之前的處理方法)