手動ビルドとかおなかがきっと痛くなってしまうやつ。たぶん苦行。覚書。
READMEにそって作業をする。
手順
環境準備編
- Cygwinをインストールする。別にCygwinじゃなくっても好きなやつでいいと思う。
- Mercurialクライアントをインストール。
ここから好きなのをインストール。
楽そうな響きに弱いので、TortoiseHgをインストール。(無心でNextを押す)
ちょっとggrとGUIクライアントで人気らしい - Cygwinの場合、OpenJDKのビルドに必要なツールがそろってないと思われるのでREADMEの表に書いてあるものをすべてインストール。
ちなみに、パッケージの追加は、Cygwinのインストールに使ったsetup.exeをもう一度起動すればOK。
インストールの時と同様に進めて、SelectPackagesのところで、ViewをNotInstalledにして必要なものを選択する。(画像はzipのインストール例)
次へを押した後に出てくるインストールするものの一覧。
ビルド編
- OpenJDKのソース全体を取ってくるために、ルートリポジトリにあるget_source.shを実行する。
$ cd /cygdrive/d
$ hg clone http://hg.openjdk.java.net/jdk8/jdk8
$ cd jdk8
$ bash ./get_source.sh
スクリプト実行が成功したらフォルダの中身は下記のようになる(たぶん)
$ ls
ASSEMBLY_EXCEPTION hotspot LICENSE README-builds.html
common jaxp make test
configure jaxws Makefile THIRD_PARTY_README
corba jdk nashorn
get_source.sh langtools README
- ビルド開始。
$ bash ./configure
何やらエラーが出た。
configure: Your cygwin is too old. You are running 3.0.7(0.338/5/3), but at least cygwin 1.7 is required. Please upgrade.
configure: error: Cannot continue
configure exiting with result code 1
Cygwinのバージョンが悪いらしい。一見、1.7以上が必要で3.Xなのでよさそうだけど、jdk8/common/autoconf/basics_windows.m4 を見ると下記のような記述が。
CYGWIN_VERSION_OK=`$ECHO $CYGWIN_VERSION | $GREP ^1.7.`
if test "x$CYGWIN_VERSION_OK" = x; then
AC_MSG_NOTICE([Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade.])
どうも1.7系以外ははじかれる?
autotoolsの知識ほぼ0なので、こっちの設定を1.7以上に書き換えるか、1.7系の古いCygwin取ってくるか悩む。前者をいったん頑張ったほうが学びはありそう。
今日はここまで。作業進めたら随時更新。