modify history:
2012-02-25:
1. add the ubuntu info,when install the os,you should choose the English.
2. add some args to the build script:BUILD_HOTSPOT_JOBS=2 BUILD_CORBA=false
背景:因為之前學習openjdk的虛擬機系統,安裝了emacs,導致環境編譯出現問題。例如:這個問題,但不僅僅只有這一個。
雖然有安裝之前有整個虛擬機完整的備份,但是正好趁此機會,再重新整理一遍編譯過程。
1. 環境信息
宿主操作系統:win7 professional 32位
vmware版本: vmware7
虛擬系統版本: Ubuntu10.10 32位 (English version)
2. 環境搭建
2.1 安裝wmware,過程略。
2.2 創建ubuntu的虛擬系統(不是安裝ubuntu過程),只需要設置cpu,memory,harddriver size,安裝路徑,其他默認即可。
注:配置虛擬機hardware的時候,刪除不使用的hardware,特別是sound。參見這個帖子。
創建完(這里還未開始安裝系統)之后虛擬機的hardware信息:
2.3 安裝ubuntu,過程略。
注:1. 選擇English;
2. 請保證網絡良好,要么直接斷網,否則在安裝過程中選擇時區在網絡差的情況會造成卡機(卡很久很久,重裝2、3次才發覺是網絡的問題,可憐的移動3g網絡)
3. 安裝完成之后,進行系統清理。(刪除不適用的軟件:game之類的。看個人喜好)
4. 更新源:$sudo apt-get update #沒有通過UpdateManager更新ubuntu操作系統
3. 軟件安裝
3.1 ubuntu中安裝openssh-server,方便與宿主機器交互文件。
$sudo apt-get install openssh-server #安裝完成之后sshd服務自動啟動。
3.2 宿主計算機安裝ssh軟件,過程略。
3.3 安裝apt-file,便於根據*.h搜索對應的庫文件,后面會用到。
$sudo apt-get install apt-file
$apt-file update #安裝完之后更新源
3.4 安裝ant,下載地址,本地保存路徑:/home/haowei/Downloads(注:后面的路徑均為本人計算機路徑)
$cd /home/haowei/Downloads
$unzip apache-ant-1.8.2-bin.zip -d .. #解壓到上級目錄,解壓后路徑:/home/haowei/apache-ant-1.8.2
3.5 安裝freetype2,下載地址,本地保存路徑:/home/haowei/Downloads
$cd /home/haowei/Downloads
$tar zxvf freetype-2.4.4.tar.gz -C .. #解壓到上級目錄,解壓后路徑:/home/haowei/freetype-2.4.4
$cd /home/haowei/freetype-2.4.4
$./configure
$make
$sudo make install #因為user的關系,需要sudo來執行安裝,安裝過程報錯但是ignored,所以不影響。
rm -f /usr/local/include/freetype2/freetype/cache/*
rmdir /usr/local/include/freetype2/freetype/cache
rm -f /usr/local/include/freetype2/freetype/internal/*
rmdir /usr/local/include/freetype2/freetype/internal
rmdir: failed to remove `/usr/local/include/freetype2/freetype/internal': No such file or directory
make: [install] Error 1 (ignored)
/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \
/usr/local/include/ft2build.h
3.6 安裝BOOTJDK,從oracle官網下載jdk1.6.0_26,解壓后的路徑:/home/haowei/sunjdk/jdk1.6.0_26
3.7 下載解壓openjdk7的源碼,解壓后的路徑:/home/haowei/openjdk
3.8 安裝編譯需要的軟件或者庫:
軟件或者庫列表:
gawk;g++;libasound2-dev;libcups2-dev;libx11-dev;libxt-dev;
libxrender-dev;libxext-dev;libxtst-dev
$sudo apt-get install xxx #執行安裝xxx
3.9 如果編譯過程中還是缺少依賴庫的話,參考下面這個過程,幫你找到對應的庫。
編譯提示,缺少X11/extensions/Xrender.h No Such file or directory。通過命令【$apt-file search Xrender.h】查找哪些庫有Xrender.h
$sudo apt-get install libxrender-dev #最終確定,Xrender.h是在libxrender-dev庫中。
4. 編譯openjdk
4.1 編譯腳本
haowei@haoweiVM:~/openjdk$ less 1-build-debug_hotspot.sh
LogFile=build_debug_version.`date +%Y-%m-%d_%H:%M:%S`.log
export ALT_BOOTDIR="/home/haowei/sunjdk/jdk1.6.0_26"
export ALT_JDK_IMPORT_PATH="/home/haowei/sunjdk/jdk1.6.0_26"
export ANT_HOME="/home/haowei/apache-ant-1.8.2"
export PATH="/usr/local/sbin:/usr/lib/:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/haowei/apache-ant-1.8.2/bin"
export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/freetype
export ALT_FREETYPE_LIB_PATH=/usr/lib/
make debug_build BUILD_HOTSPOT_JOBS=2 BUILD_JAXWS=false BUILD_JAXP=false BUILD_CORBA=false>$LogFile
設定LogFile是為了保存每次編譯過程的日志。根據編譯日志還可以看到一些有用的信息。
make參數還可以選擇:product_build....
4.2 編譯過程的問題
4.2.1 freetype檢查出現問題
編譯過程出現下面的錯誤:
解決辦法:安裝完freetype后,需要對路徑進行修改(其實就是要將freetype目錄里的全部文件移到上層目錄,再修改上層目錄的文件名為freetype):
old:/usr/local/include/freetype2/freetype/*
new:/usr/local/include/freetype/*
4.2.2 libfreetype.so找不到
下面這個問題是libfreetype.so文件找不到。但在/usr/lib中有libfreetype.so.6的文件
在目錄【/usr/lib】中建立libfreetype.so的
軟連接:【$sudo ln -sv /usr/lib/libfreetype.so.6 libfreetype.so】
4.2.3 編譯完成
-- Build times ---------- Target debug_build Start 2012-02-07 10:47:19 End 2012-02-07 10:56:50 00:00:11 corba 00:00:26 hotspot 00:08:48 jdk 00:00:06 langtools 00:09:31 TOTAL ------------------------- 注:這里的執行時間不是真正完整的編譯時間。