ubuntu编译openjdk7

 


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信息:

         image

    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 如果编译过程中还是缺少依赖库的话,参考下面这个过程,帮你找到对应的库。

                    Image[3]

                    编译提示,缺少X11/extensions/Xrender.h No Such file or directory。通过命令【$apt-file search Xrender.h】查找哪些库有Xrender.h

                    Image(1)

                    $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检查出现问题
                编译过程出现下面的错误:

            Image(2)

            解决办法:安装完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的文件

              Image(3)

             在目录【/usr/lib】中建立libfreetype.so的

             软连接:【$sudo ln -sv /usr/lib/libfreetype.so.6 libfreetype.so】

             Image(4)

  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

-------------------------

注:这里的执行时间不是真正完整的编译时间。

你可能感兴趣的:(OpenJDK)