Ubuntu10.04下build OpenJDK7 的过程
1. 安装mercurial
Mercurial是一个版本管理工具。
sudo apt-get install mercurial
安装mercurial的扩展,添加fclone在支持
hg clone http://bitbucket.org/pmezard/hgforest-crew
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个:
[extensions]
forest=/home/daren/hgforest-crew/forest.py
fetch=
2. 下载jdk7源码
hg fclone http://hg.openjdk.java.net/jdk7/jdk7
3. 安装gcc、g++、make等
sudo apt-get install build-essential
4. 安装XRender
sudo apt-get install libxrender-dev
sudo apt-get install xorg-dev
5. 安装alsa
sudo apt-get install libasound2-dev
6. Cups
sudo apt-get install libcups2-dev
7. 安装jdk6
8. 安装ant
设置ANT_HOME
9. 安装findbugs
编译需要这玩意儿有点奇怪。需要设置FINDBUGS_HOME
10. 测试编译
export LANG=C ALT_BOOTDIR=/opt/jdk1.6.0_22/
#删除JAVA_HOME
export -n JAVA_HOME
export ALT_JDK_IMPORT_PATH=/opt/jdk1.6.0_22/
make sanity BUILD_JAXWS=false BUILD_JAXP =false
在build BUILD_JAXWS和BUILD_JAXP总是提示找不到源文件,而我又暂时对只对JDK、Hotspot感兴趣,所以索性把这两个给去掉。
如果出现:Sanity check passed.则表示测试编译通过了,不过也别开心得太早,真正make的时候不保证一定没问题,也许还会缺少某些依赖。
11. 编译
export LANG=C ALT_BOOTDIR=/opt/jdk1.6.0_22/
#删除JAVA_HOME
export -n JAVA_HOME
export ALT_JDK_IMPORT_PATH=/opt/jdk1.6.0_22/
#make BUILD_JAXWS=false BUILD_JAXP=false
#make DEBUG_NAME=fastdebug BUILD_JAXWS=false BUILD_JAXP=false
make DEBUG_NAME=all_fastdebug BUILD_JAXWS=false BUILD_JAXP=false
如果一切正常的话在$HOME/jdk7/build/linux-i586/下就有build出来的jdk等了。