OpenJDK6をビルドしてみた。情報が少ないので、結構、面倒な感じ。とりあえず、必要そうなものを入れておく。
# yum install java-1.6.0-openjdk # yum install gcc gcc-c++ # yum install alsa* # yum install cups-devel # yum install openmotif openmotif-devel # yum install libX11-devel libXt-devel libXext-devel libXp-devel libXtst-devel libXi-devel # yum install python-setuptools
ソースコードをチェックアウトするのにMercurialが必要なのでインストールする。
# easy_install -U mercurial
そんでもって、さらにForest拡張なるものがないと、一通りのソースコードを持ってこれないので、これを設定する必要がある。ここからは普通のユーザーで良い。
$ hg clone http://hg.akoha.org/hgforest $ mkdir ~/py $ cp hgforest/forest.py ~/py/
Mercurialマスターではないので、正しい持ってき方がわからんが、forest.pyを取得して、適当なところに置いておく。そんで、.hgrc を編集。
$ vi ~/.hgrc [extensions] forest=/home/taro/py/forest.py
ここまできたら、ようやくソースの取得が行える。適当なディレクトリで作業する。
$ cd $ mkdir openjdk $ cd openjdk $ hg fclone http://hg.openjdk.java.net/jdk6/jdk6
これで、jdk6 に一式持ってこれる。ここからさらに環境整備。Plugs なるものが必要なので、これをダウンロードしてインストールする。
$ wget http://download.java.net/openjdk/jdk6/promoted/b17/jdk-6-ea-plug-b16-linux-i586-25_nov_2008.jar $ java -jar jdk-6-ea-plug-b16-linux-i586-25_nov_2008.jar
今回は、/home/taro/openjdk/openjdk-binary-plugsに置く。そんで、環境変数を設定する。あらかじめ、JDK1.6.0_16を/usr/java/jdk1.6.0_16にインストールしておいた。
$ unset JAVA_HOME $ export LANG=C ALT_BOOTDIR=/usr/java/jdk1.6.0_16 $ export ALT_BINARY_PLUGS_PATH=/home/taro/openjdk/openjdk-binary-plugs $ export ALT_MOTIF_DIR=/usr
Antも必要なのでインストール。
$ wget http://ftp.riken.jp/net/apache/ant/binaries/apache-ant-1.7.1-bin.tar.gz $ tar zxvf apache-ant-1.7.1-bin.tar.gz $ export ANT_HOME=/home/taro/openjdk/apache-ant-1.7.1 $ export PATH=$ANT_HOME/bin:$PATH
Freetype 2.2 も必要なので入れる。RHEL5だと、2.1みたい。/home/taro/openjdk/usrにインストール。
$ mkdir usr $ wget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.11.tar.gz $ tar zxvf freetype-2.3.11.tar.gz $ cd freetype-2.3.11 $ ./configure --prefix=/home/taro/openjdk/usr $ make $ make install $ cd .. $ export ALT_FREETYPE_LIB_PATH=/home/taro/openjdk/usr/lib $ export ALT_FREETYPE_HEADERS_PATH=/home/taro/openjdk/usr/include
これでようやく、openjdkのビルドにたどりつく。
$ cd jdk6 $ make sanity $ make
これで出来上がり。以下で動作確認。
$ export JAVA_HOME=/home/r2fw/shinsuke/Projects/openjdk/jdk6/build/linux-amd64/j2sdk-image/ $ ./build/linux-amd64/j2sdk-image/bin/java -version openjdk version "1.6.0-internal" OpenJDK Runtime Environment (build 1.6.0-internal-taro_25_nov_2009_11_22-b00) OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
うーん、環境作るの面倒だよ。結構、模索した。これじゃ、なかなか開発者も増えんのではなかろうか…。