Linuxでビルドする方法

このドキュメントではOpenOffice.org 1.1系の日本語版をビルドします。英語によるビルドの方法はBuilding OpenOffice.org under Linuxを参照してください。

必要なものは以下にリストしてありますが、この他にビルドするための時間が必要です。OpenOffice.orgのソースコードは圧縮して約200MBほどになります。このソースコードをダウンロードするのにも時間がかかりますし、解凍するのにもそれなりの時間がかかります。さらに、マシンの性能にもよりますが、OpenOffice.orgのビルドには約20時間かかります。

必要なもの

オプション

ソースコードのダウンロード

OpenOffice.org 1.1.1 Source, Solverページの下部にあるミラーの中からお好きなミラーサーバを選択し、OOo_1.1.1p1_source.tar.gzをダウンロードします。ソースコードのアーカイブをダウンロードしたら、適当なところで展開します。

$ tar xvfz OOo_1.1.1p1_source.tar.gz

アーカイブを展開するとoo_1.1.1_srcというディレクトリにソースコードが展開されます。

CVSのアップデート

OpenOffice.orgにはソースコードに多くのエラーがあり、日々解決されています。tarボールのソースコードをダウンロードをした場合には、CVSでソースコードを最新の状態に更新する必要があります。

Branches and Their Descriptionsの表の左側にcws_srx645_ooo111fix3などと記されているのが、OpenOffice.orgのCVSレポジトリのブランチタグというもので、そのDescriptionを見てどれが1.1系の最新ソースコードのブランチタグかを判断してください。以下、CVSブランチタグを${BRANCH_TAG}とします。

そして、CVSによりアップデートを行いますが、CVSによるアップデートは${SRC_ROOT}以下の各ディレクトリごとに行わなければなりません。よって、以下のコマンドを${SRC_ROOT}以下の各ディレクトリごとに行います。

$ cvs update -d -r ${BRANCH_TAG}

また、いちいちカレントディレクトリを切替えるの面倒な場合は、以下のシェルスクリプトを実行すると手間が省けます。(${SRC_ROOT}には絶対パスを指定します。)

for dir in `ls`; do
cd ${SRC_ROOT}
if [ -d ${dir} -a -d ${dir}/CVS ]; then
cd ${SRC_ROOT}/${dir}
cvs update -d -r ${BRANCH_TAG}
fi
done

gpcのダウンロード

OpenOffice.orgはgpcという外部のソースコードを利用しています。OpenOffice.orgをビルドするには、このgpcのソースコードをダウンロードしなければいけません。

General Polygon Clipper Homepageからgpc231.zipをダウンロードします。そしてgpc231.zipを解凍して、$SRC_ROOT/external/gpcにgpc.cとgpc.hをコピーします。

$ wget ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.zip
$ unzip gpc231.zip
$ cp gpc231/gpc.* ${SRC_ROOT}/external/gpc

日本語のヘルプ

ヘルプを日本語にするためには、別にファイルが必要です。http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/より、(日本語の国際電話の番号は81なので)helpcontent_81_unix.tgzをダウンロードします。ダウンロードしたらまず展開し、次に、$SRC_ROOT/helpcontent/unx/というディレクトリの中を見てください。ここにはcommonやsbasicといったディレクトリがあるので、それぞれのディレクトリ内にjapaneseというディレクトリを作り、さらに、その中に先ほどhelpcontent_81_unx.tgzを展開してできた、sbasic81.zipなどのファイルを$SRC_ROOT/helpcontent/unx/*/japanese/に移動し、さらにそれらのzipファイルをそのディレクトリで解凍します。ちなみに、shared81.zipは$SRC_ROOT/helpcontent/unx/common/japanese/に移動して展開します。

$ wget ftp://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/helpcontent_81_unix.tgz
$ tar xvfz helpcontent_81_unix.tgz
$ mkdir ${SRC_ROOT}/helpcontent/unx/common/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/swriter/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/scalc/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/schart/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/sbasic/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/smath/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/simpress/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/sdraw/japanese
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/common/japanese shared81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/swriter/japanese swriter81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/scalc/japanese scalc81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/schart/japanese schart81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/sbasic/japanese sbasic81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/smath/japanese smath81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/simpress/japanese simpress81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/sdraw/japanese sdraw81.zip

configure

次にconfig_officeディレクトリに移り、./configureを行ないます。このときに適宜./configureにオプションをつけてください。./configureで設定できるオプションは

$ ${SRC_ROOT}/config_office
$ ./configure --help

で見ることができます。必要なものにリストしたプログラムについてはPATHに通しておき、JAVA_HOMEやANT_HOMEも設定しておけば特にオプションをつける必要はないでしょう。また、ccacheを利用するにはあらかじめCC、CXX環境変数を'ccache gcc'などに設定しておきます。

$ export CC='ccache gcc'
$ export CXX='ccache g++'

ただし、日本語版をビルドする際には、--with-lang=JAPNオプションが必要です。この場合、日本語版と英語版の両方がビルドされます。

cd ${SRC_ROOT}/config_office
./configure --with-lang=JAPN

makeする前に

環境変数の設定とビルド環境の構築をします。shやbashを使っているならば$SRC_ROOTにあるLinuxIntelEnv.Set.shを、cshやtcshを使っているならばLinuxIntelEnv.Setを取りこみます。そして、bootstrapをしてdmakeなどのツールを生成させます。

$ cd ${SRC_ROOT}
$ source LinuxIntelEnv.Set.sh (sh, bashの場合)
$ source LinuxIntelEnv.Set (csh, tcshの場合)
$ bootstrap

ビルド開始

これでビルドの準備は整いました。dmakeコマンドでビルドを開始します。

dmake

dmakeを始めたら、あとはただ待つのみです。Pentium III 650MHz, メモリ256Mでだいたい20時間ぐらいかかりました。

ビルドが終了したら

エラー出力がなく、最後までビルドが終ったらあとはインストールセットを作るのみです。ただし、このインストールセットは自動的にできます。$SRC_ROOT/instsetoo/unxlngi4.pro/81/normal以下にできています。

$ cd ${SRC_ROOT}/instsetoo/unxlngi4.pro/81/normal
$ ./setup

とすると、普通にインストールができるようになるはずです。また、これらをアーカイブとして配布するにはnormalディレクトリのみをtar.gz形式にアーカイブ化します。

$ cd ${SRC_ROOT}/instsetoo/unxlngi4.pro/81
$ tar cvf OOo_1.1.1_LinuxIntel_install_ja.tar normal
$ gzip OOo_1.1.1_LinuxIntel_install_ja.tar

こうすると、OOo_1.1.1_LinuxIntel_install_ja.tar.gzというアーカイブができます。ビルドしたバイナリを配布するにはこのアーカイブを配ればよいです。また、アーカイブ名は適宜変更してください。(OOo_1.1.1_LinuxIntel_install_ja.tar.gzというアーカイブ名はOpenOffice.orgが配布しているアーカイブの命名規則に従ったものです。)

一連の作業を楽にするために

自分でOpenOffice.orgをビルドするのはとても大変な作業で、特にソースコードをダウンロードしてからビルドを開始するまでには単純な作業を強いられます。
この単純な作業を自動で行うためのシェルスクリプトja_configure.shを作成しました。${SRC_ROOT}にダウンロードして実行してください。このドキュメントでいうと、(ソースコードをダウンロードして展開した後の)CVSのアップデートから(dmakeをする前の)bootstrapまでの設定を自動的に行ないます。

このシェルスクリプトを利用する前に、このスクリプト内のBRANCH_TAGは適宜変更して利用し、その他の詳細についてはスクリプトを直接見てください。


制作者:中本崇志
デザイン:小浦寛裕
$Id: build_linux.html,v 1.6 2004/05/02 15:51:59 bluedwarf Exp $