openjdk6在linux上的编译手顺
我在xubuntu上编译openjdk6是按照http://rednaxelafx.iteye.com/blog/875957撒加这篇文章编译的,可是仔细琢磨才知道这篇文章是编译sun以jrl许可证发放出来的jdk源码的,不过大体思路差不多,有少许差别(就是这少许区别搞了很久。。。)。
环境:在virtual4.2.4装上xubuntu10.04.2
一开始是按照OpenJDK6 Build README
http://hg.openjdk.java.net/jdk6/jdk6/raw-file/tip/README-builds.html里面的步骤来的,下载并安装gcc,openjdk等。。。这里我的gcc版本为4.3,openjdk版本为6
hg clonehttps://bitbucket.org/pmezard/hgforest-crew/overview/ MyHgForest
默认下载到/etc/MyHgForest目录
然后将命令添加到Mercurial (/etc/mrcurial)的hgrc文件中
[extensions]
forest = YourHgForest/forest.py
用hg命令下载openjdk6
hg fclone http://hg.openjdk.java.net/jdk6/jdk6openjdk6 (openjdk6会下载到当前目录)
然后执行命令(暂时不知道这个有什么作用。。。)
cd openjdk6
sh./make/scripts/hgforest.sh pull –u
然后安装jdk6相关的依赖和用来编译c的gcc等工具
sudo aptitude build-dep openjdk-6
sudo aptitude install openjdk-6-jdk gcc-4.3 g++-4.3
(我这里gcc-4.2安装失败)
sudo aptitude installlibmotif-dev
配置环境变量
export LANG=CALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk(启动级的jdk,我这里装系统时已自动安装好)
export
ALLOW_DOWNLOADS=true(JAXP和JAXWS部分的源码要动态下载)
unset JAVA_HOME
当时是按照撒加那篇文章的编译的,所以也把撒加安装过的相关工具也一并安装了。。。
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev
sudo apt-get install binutils
build-essential gawk m4 binutils:
这些是Linux上的一些基本工具,build许多东西都需要它们。build-essential主要用来装g++(GNU C++编译器)及C++标准库;gawk是GNU版awk,用来做文本操作;m4是一种模板语言,AWT的DebugHelper依赖它来生成部分源 码;binutils主要是链接器、汇编器、反汇编器之类的。
libasound2-dev:
这是Advanced Linux Sound Architecture (ALSA)相关的依赖。
libcups2-dev:
这是Common UNIX Printing System (CUPS)相关的依赖。
libxrender-dev xorg-dev xutils-dev x11proto-print-dev:
这些全部都是X相关的依赖,主要是为了build出AWT的部分才会需要的。这部分依赖非常非常蛋疼。在安装完依赖后,还得造个符号链接,把/usr/lib映射为/usr/X11R6的别名,这样build过程才能正确找到X11的头文件:
sudo mkdir/usr/X11R6
cd /usr/X11R6/
sudo ln -s -T/usr/lib lib
相关工具和环境变量已经配置好&#x