火曜日, 11月 25, 2008

Windows版OpenOfficeの64bitへの道(弐)

今日ウェブに検索したページはその元が既にいなくなったかもしれないので、念のために、ここに丸ごとコピーしました。



ビルドの具体例
  1. Building OpenOffice.org 2.x (680er/300er series) under Windows with tcsh

    Beware! The build instructions for OpenOffice.org 1.1.x (and older) are different!

    Last changes made: $Date: 2008/11/13 15:06:36 $

    This document describes the requirements and actions that you need to build OpenOffice.org on Windows using Cygwin shell.

    Commands you have to type on the keyboard follow this syntax throughout this document:

    config_office> ./configure

    In this example, the script configure is executed in the directory config_office.

    Since OpenOffice.org 2.1.x (SRC680_m175) it is possible to use bash instead of tcsh. This has to be enabled with the --with-use-shell configure switch. The following instructions are for the tcsh case but the savy *NIX user should be able to guess the needed changes. The environment file for bash adds an additional .sh suffix to the tcsh environment filename.

    $SRC_ROOT will denote the directory in which the source code of OpenOffice.org is stored.


    Table of Contents




    Overview

    This section is meant as a reminder or checklist for those who have some experience in building OpenOffice.org. Everybody else should jump to the Build Requirements section.

    Even experienced builders are well advised to check the release notes at http://development.openoffice.org/releases/2.0.0rc2.html and the section Build Requirements in this document to inform yourself about changes since the previous releases.

    Detailed step-by-step build descriptions are given from the next section on.

    Overview of Performing a Full Build

    To perform a full build, you need to follow these steps:

    1. Get the source code, either from the download webpage (http://download.openoffice.org/680/index.html) or alternatively via a check-out from the cvs tree against a release tag, e.g. OpenOffice_2_0_0.
    2. Run the configure script to check all requirements and to create the script winenv.set.
    3. Source the winenv.set script to set all environment variables.

      Please see the last screen from the configure script for more specific information on setting up for your platform.

    4. Create the build tools using bootstrap.
    5. Recompute tcsh's directory hash using rehash.
    6. Build typing dmake in $SRC_ROOT, or build --all in the instetoo_native module, or build followed by deliver in the individual modules.
    For detailed build instructions, see the section Building a Full Build of the Office Suite in this document. The installation procedure is described at the end of this document.



    Build Requirements

    Before you start building, you must ensure that your system satisfies the recommended software and hardware requirements for the type of system you are working on. For Windows, these are as follows:

    Software Requirements

    • Windows 2000 SP 2 or higher ,Windows XP or Windows Vista
    • A Microsoft Visual C++ .NET Compiler . MS Visual C++ .net 2003 (not for free available) is currently used for the official builds but Microsoft Visual C++ 2005 Express Edition (free download, as in free beer) is also expected (but not guaranteed) to work. See additional build instructions at: MS Visual C++ 2005 Express
    • A Microsoft Platform SDK. The Sun provided builds use the following parts of the February 2003 version of the Microsoft Platform SDK (including the 64-bit build environment if possible): The MDAC SDK, the Core SDK, the Internet Development SDK and the Windows Installer SDK.
      Unfortunately that SDK is no longer available for download from Microsoft. The current version of the Platform SDK (Microsoft Windows Server 2003 SP1 Platform SDK - April 2005 Edition) can be downloaded from here. The following parts have to be installed:
      • Microsoft Windows Core SDK
        (The 64-bit Build Environment / 64-bit Tools are not needed)
      • Microsoft Web Workshop (IE) SDK
      • Microsoft Internet Information Server (IIS) SDK
      • Microsoft Data Access Services (MDAC) SDK
      • Microsoft DirectShow SDK
      • Platform SDK Redistributable: GDI+
    • A DirectX 9.0 SDK. The Sun provided builds use DirectX 9.0 SDK Update - (Summer 2004) but that is no longer available for download from Microsoft. The current version of the DirectX SDK
      • DirectX SDK - (February 2006)
      can be downloaded here.
    • A Java 2 SDK is required. JDK 1.5
      Note: Java 6.0 (JDK 1.6.0) is supported starting from DEV300_m13 (OOo 3)
    • Cygwin Toolkit from http://www.cygwin.com. Use at least Cygwin DLL version 1.5.10. The official information about using setup.exe and installing Cygwin are available at: http://cygwin.com/cygwin-ug-net/setup-net.html. More help and information on the Cygwin tools can be found at http://website.openoffice.org/support/en/howtos/1.html.

      When installing Cygwin make sure you set the "Default Text File Type" to "Unix". This is the default setting.

      Not all Cygwin packages are needed to build OpenOffice.org, but make sure that at least all the packages from the base category and the following packages are installed.

      bison
      flex
      make
      patch
      perl

      And also:
      gcc
      rxvt
      tcsh
      unzip
      zip
      Important Note: Within the Cygwin Toolkit, three executables might be realised as symlinks, namely awk.exe, gunzip.exe and tar.exe. This might lead to a break of the build later, and the symlinks should be replaced with copies of the command they link to. Check, in a cygwin shell, with ls -l /bin/awk.exe whether awk.exe is a symlink. For instance, awk.exe could be a link to gawk.exe, in which case you should copy gawk.exe to awk.exe: cd /bin; cp gawk.exe awk.exe. Take similar action for unzip.exe and tar.exe.

      Important Note: If you are using cygwin-1.5.18, you may have to download a development snapshot of the cygwin1.dll from http://cygwin.com/snapshots/, please see issue i#51560# for more details. If you do not do this, your build will hang while building 'instsetoo_native'.

    • The gpc general polygon clipper library release 2.31, located at http://www.cs.man.ac.uk/aig/staff/alan/software/. Download and unpack the tarball. You should have the files gpc.c and gpc.h in $SRC_ROOT/external/gpc.
    • The Microsoft Layer for Unicode (unicows.dll). Get it from the Microsoft site and put it into $SRC_ROOT/external/unicows. (Note: Microsoft seems to enjoy changing the exact location of this file. You may have to search Microsoft's website.) Last time it was seen here.
    • The dbghelp.dll from Microsoft. Get it from the Microsoft site and put it into $SRC_ROOT/external/dbghelp. (Note: You may have to search Microsoft's website.) Last time it was seen here.
    • Ant Is required. This is a Java make utility.
    • Nullsoft Scriptable Install System (NSIS)
      This is optional, if available a self contained Windows installer is created in addition to the MSI installer files.
    • Mozilla libraries
      Some Mozilla libraries are needed. Choose one of the following three options.
      • Build the libraries
        Get the source from here, copy it into $SRC_ROOT/moz/download and configure will detect the source archive.
      • Use prebuild libraries
        Place WNTMSCI{inc,lib,runtile}.zip into $SRC_ROOT/moz/zipped. You have to configure with --disable-build-mozilla to enable the use of the prebuild libraries. The files can be found here or can be reused if the packages were build following the instructions of the previous point. In the latter case they can be found in $SRC_ROOT/moz/wntmsci10.pro of a successfull build.
      • Don't use the libraries
        By using the --disable-mozilla switch for configure you waive the extra functionality.

    Perl Module requirements

    This is a list of the perl modules that have to be installed.

    Important Note: No, these modules are not automatically included in the Cygwin perl installation. Use the link above to learn how to install them.
    Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.

    Module: Used for:
    Archive::Zip packing image lists, evtl. for further zipping needs
    XML::Parser expat based parser for the new XML based build lists

    Perl - Additional CWS tooling requirements

    For committers who want to use the CWS tooling

    Module: Used for:
    Crypt::SSLeay for SSL encrypted SOAP connections. Note: It needs the openssl-devel cygwin package to be installed.
    LWP::UserAgent a requirement for SOAP::Lite that is not automatically installed. Install it or the install of SOAP::Lite will fail.
    SOAP::Lite access the SOAP based CWS webservice.

    Hardware Requirements

    • Intel Pentium II PC
    • 128 MB RAM (More recommended)
    • 4 GB free disk space (8 GB for crashdump)


    External Components

    The code contains some further external components which are already provided. If you are interested in details about these, look at the External Components webpage at http://tools.openoffice.org/ext_comp.html.




    Get the source code

    You have two options to get the source code:

    • Download the source code tarball (http://download.openoffice.org/3.0.0/source.html), e.g. OOo_3.0.0_src_core.tar.gz in case of the 3.0 stable release.

      Unpack the tarballs as follows:

      > tar -xvzf OOo_3.0.0_src_core.tar.gz
      > cd OOO300m9

      This will be $SRC_ROOT from now on. Please check the OpenOffice.org Wiki for more detailed information about the source tarballs.

    • Another possibility is to check out the code from the cvs tree. If you don't have a username and password, you can still do a checkout as anoncvs:
      > cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs login
      Just press enter when prompted for the password.
      > cd $SRC_ROOT
      $SRC_ROOT> cvs /
      -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs /
      co -r OpenOffice_3_0_0 OpenOffice3
      The non-bold slash means that the command should be in one line. It is possible to update an already existing older copy to a newer release:
      $SRC_ROOT> cvs /
      -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs /
      update -r OpenOffice_3_0_0 OpenOffice3
    • If you're only interested in building individual modules, you won't need the entire source code. You can check out individual modules from the cvs tree:
      $SRC_ROOT> cvs /
      -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs /
      co -r OpenOffice_3_0_0 (module-name)
    • A note on the tags (i.e. the argument to the -r option in the cvs commands listed above): If HEAD is used as a tag, you will get the newest latest source code. This, however, will most likely not build since development is going on there. See http://tools.openoffice.org#CWS for a description of the development process with child workspaces and Environment Information System for the current child workspaces and milestones.




    Generating the Build Environment and Build Tools

    The configure script to check/prepare the build environment. It checks that all software, hardware, and system requirements for the build are satisfied, and creates a configuration file called winenv.set that is used to set all necessary build environment variables. See the example below.

    This configuration file is created in the SRC_ROOT directory. A top-level makefile script makefile.mk and the script bootstrap from the config-office directory are moved into SRC_ROOT as well. This is due to technical reasons: The SRC_ROOT directory in the cvs tree can only hold directories. On the other hand, the top-level makefile.mk should logically be placed in the top-level directory SRC_ROOT. The cvs tree holds these files in config_office and configure copies them up.

    Before running configure, make sure that all needed Programs are in the system path or start configure with the appropriate command line switches.

    The following should demonstrate in detail what steps have to be done to set up the environment. For this examples we assume that

    • the source code is in C:\OOO300_m9
    • JDK 1.4.1_02 is installed in C:\j2sdk1.4.1_02
    • the Microsoft Compiler is located in C:\PROGRA~1\MICROS~1.NET\Vc7 (or c:\Programme\Microsoft Visual Studio .NET 2003\Vc7)
    • the Microsoft SDK is located in C:\PROGRA~1\MICROS~5

    Other Shells - Example

    You are able to enable the use of tcsh with --with-use-shell=tcsh or the use of bash with --with-use-shell=bash.

    To run the configure script, type the following command:

    $SRC_ROOT> cd config_office
    config_office> ./configure --with-cl-home="/cygdrive/c/Programme/Microsoft Visual Studio .NET 2003/Vc7"
    --with-jdk-home=/cygdrive/c/j2sdk1.4.1_02 --with-use-shell=tcsh

    There are a number of options that you can use with the configure script. To display these options, type the following command:

    config_office> ./configure --help

    After running configure, you have to continue in a tcsh shell:

    $SRC_ROOT> tcsh

    To create the dmake make utility that is needed for the build of OpenOffice.org type the following command:

    $SRC_ROOT> ./bootstrap

    Now source the configuration file which sets all environment variables:

    $SRC_ROOT> source winenv.set

    Don't forget to run

    $SRC_ROOT> rehash

    afterwards.

    If you experiment with the newest sources from the cvs-tree, mind that updates to the configure process may not happen via updates of configure (the script file) but via the files configure.in and set_soenv.in. The configure script itself is created from configure.in using the autoreconf command. The perl script set_soenv is created when you run configure from set_soenv.in.

    If you need to modify or create a correct configure you would run commands like the following:

    $SRC_ROOT> cd config_office
    config_office> cvs update configure.in
    config_office> autoreconf
    To update the configure script. If you only use code from the snapshot releases on the web, you don't need to be concerned about this.


    Build Instructions

    Building a Full Build of the Office Suite

    Now you are ready to build OpenOffice.org. To build the entire suite, all you have to do (after having created the environment as described above) is to run dmake from the top-level directory. This may take several hours.
    $SRC_ROOT> dmake

    If you wish to control the build more you can perform a build with local install sets or tarballs.

    • instsetoo_native will create rpm's or the actual delivery package for your platform.
    • instsetoo will create a single tar file containing the build however it is deprecated.
     cd $SRC_ROOT
    cd instetoo_native
    build --all

    If you decide to rebuild a module or build each module individually (mind dependencies!), you will have to use the build tool. A subsequent deliver will copy all created binaries, libraries etc. into the solver tree:

    $SRC_ROOT/(module)> build
    $SRC_ROOT/(module)> deliver

    The following table shows the time required to build on a system with a particular specification. You can use these details to estimate the time required to build on your system.

    Architecture Intel
    Processor Athlon XP1700
    Processor speed 1466 MHz
    RAM 512 MB
    Hard Disk 160 GB 7200 RPM IDE
    Time (for SRC680_m86) ~17 h






    Building a Project with Debug Information

    To rebuild a complete project with debug information, remove all object files by removing the wntmsci10.pro directory. Then run build with the debug option set to true:

    $SRC_ROOT/(module)> rm -rf 
    $SRC_ROOT/(module)> build debug=true



    Instructions to Build an Installation Set

    The build process (started with a top-level dmake or build --all in $SRC_ROOT/instsetoo_native) will create an installation sets in English. A simple build in $SRC_ROOT/instsetoo_native will also create the installation sets, provided all other modules are already built.

    If you have built an installation set earlier and want to re-build it, please delete the local outpath first:

    $SRC_ROOT/instsetoo_native> rm -rf wntmsci10.pro

    The English installation set will be located at $SRC_ROOT/instsetoo_native/wntmsci10.pro/OpenOffice/install/en-US. Execute the setup binary to install:

    $SRC_ROOT> cd instsetoo_native/wntmsci10.pro/OpenOffice/install/en-US
    en-US> setup.exe
    The en-US in the path names indicates that the localization is American English. This value corresponds to the language tags defined by RFC 1766 (Tags for the Identification of Languages). The German installation set will be located in a de subdirectory. This scheme holds true for all localizations you may have chosen explicitly (see next section Building Localized Versions of OpenOffice.org).

    For a network installation, use the -net option to setup. Details on the network installation process can be found at http://installation.openoffice.org/proposals/netinstall.html in the installation project webpage.

    For information on creating an automated installation script and create a response file.




    Building Localized Versions of OpenOffice.org

    Running the configure script with the --with-lang option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the value of the completelangiso macro in $SRC_ROOT/solenv/inc/postset.mk for all the currently supported language tags.

    Example: --with-lang="de fr" enables the build of the localized german and french version.

    The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages.




    Building Localized Language Packs

    If you build additional localized languages it is possible to generate Language Packs that contain only the changes needed to add the additional language to an OpenOffice.org of a different language.

    The following commands will generate language packs languages that were specified with the --with-lang switch during the configure phase. Note that you can only build the language packs after you have build the complete office with all selected languages.

    $SRC_ROOT> cd instsetoo_native/util; dmake ooolanguagepack




  2. WindowsでOpenOffice.org 2.0をビルドする方法

    このドキュメントではOpenOffice.org 2.0系の日本語版をビルドします。現在、OpenOffice.org 2.0は開発段階であり、SRC680というコードにより開発されています。また、1.9と表記する場合もあります。開発段階であるため、多くの環境では ビルドの途中でエラーが起こったりしますが、それらはあなたがビルドしているその間にも議論検討がなされ、解決しています。ビルド中にエラーが起こった場 合には、[[ FAQ ]]を参照してください。

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

    ビルドの概要

    ビルドは以下の手順で進めます。
    1. ビルドに必要なものを入手し適切な場所に用意します。
    2. 日本語環境でのビルドのための修正を行います。
    3. ビルドの環境設定を行います。
    4. ビルドの実行を行います。

    ビルドに必要なもの

    ハードウェア

    ハードウェアの条件は英語版ドキュメントによれば以下の通りです。
    • Processor : Intel Pentium II
    • RAM : 128Mバイト以上推奨
    • Hard Disk : 4G Byte以上の空き容量 (crashdumpのビルドを有効にした場合は8G Byte以上が必要)

    ソフトウェア

    Windows版をビルドするには以下のソフトウェアが必要になります。
    すべてオープンソースでビルドできるのが理想的なのですが、残念ながらそうはいきません。最初の二つはオープンソースでなく、しかも有償のソフトです。
    • Windows NT 4.0 SP3 もしくはそれ以降
    筆者の環境は、Windows XP Professional(SP2)です。
    • Microsoft Visual C++ .NET 2003
    以降の無償で入手できるツールも必要です。
    筆者の環境は J2SDK 1.4.2_06です。
    Windowsで*unix*互換のツールを動かす環境とコマンドツール群のキットです。
    Cygwin DLLのversionが1.5.10以上のものが必要となっていますが、最新のものを入手すればほぼ大丈夫でしょう。
    Cygwinの中で必要となる主なものは、bash、tcsh、bison、flex、make、gawk、gcc、gzip、patch、tar、perl、unzip、zipなどです。
    cvsリポリトジからソースファイルを入手する場合にはcvsも必要となります。 デフォルトのままではインストールされないものもあるのでよく確認してインストールして下さい。
    また、インストールの際に改行コードの扱い方の選択をするところがありますがデフォルト(Unix)のままでインストールして下さい。

    シンボリックリンクされたコマンドに関して

    Cygwin ツールキットのコマンドの中には*uinx*互換のシンボリックリンクになっているものがあります。
    4NTシェルではそれらのシンボリックリンクが扱えない為、configureではビルドの際に使用するコマンドがシンボリックリンクの場合、エラーではじくようにしています。
    その為、該当のファイルをリンク先のファイルからコピーして、シンボリックリンクではない状態にしておく必要があります。
    Cygwinのシェルで、以下の様に実行し、それらを修正して下さい。

    cd /usr/bin && for files in awk.exe tar.exe gunzip.exe; do cp -p $files $files.new && rm $files && cp -p $files.new $files && rm $files.new; done

    Cygwinのzipに関して

    Cygwinのzipに関しては確認が必要です。
    バージョン2.3-1以前のものでは、正常にセットアップできるインストールセットが作成できません。

    1. cygcheck -c zipとしてバージョン2.3-2以上である事を確認して下さい。
    $ cygcheck -c zip
    Cygwin Package Information
    Package Version
    zip 2.3-2

    Use -h to see help about each section
    2. zip -vとした時に以下のように表示される事を確認して下さい。
    Copyright (C) 1990-1999 Info-ZIP
    Type 'zip "-L"' for software license.
    This is Zip 2.3 (November 29th 1999), by Info-ZIP.
    Currently maintained by Onno van der Linden. Please send bug reports to
    the authors at Zip-Bugs@lists.wku.edu; see README for details.

    Latest sources and executables are at ftp://ftp.cdrom.com/pub/infozip, as of
    above date; see http://www.cdrom.com/pub/infozip/Zip.html for other sites.

    Compiled with gcc 2.95.3-5 (cygwin special) for Unix (Intel 386) on May 12 2002.

    Zip special compilation options:
    USE_EF_UT_TIME

    Zip environment options:
    ZIP: [none]
    ZIPOPT: [none]
    特に、「(cygwin special) for Unix (Intel 386)」あたりが確認する為の重要なポイントです。
    アセンブラは、Visual C++ もしくは、Visual Studioと一緒にすでにインストールされている可能性があります。
    必要なファイル(ML.EXEと、ML.ERR)の所在を確認してみて下さい。
    存在しない場合は上記のリンク先にフリーなバージョンを入手する方法があります。
    入手したら、パスの通ったフォルダにML.EXEと、ML.ERRをコピーして下さい。
    Microsoft Platform SDKのなかで必要なものはMDAC SDK、CORE SDK、INTERNET SDK、WINDOWS INSTALLER SDKです。
    通常はVisual C++のインストール時に一緒にインストールされているはずです。
    2.0 Code Lineからは、DirectX 9.0 SDKも必要となりました。
    Windows 95/98/MeではWindowsのUNICODE APIについてはごく限定されたものしかサポートされません。
    これを補完するのがこのDLLで、再配布可能なファイルとしてマイクロソフトが提供しています。
    あらかじめ開発環境でWindowsディレクトリに入れておきます。
    • gpc 一般多角形クリップライブラリ リリース 2.31
    zipアーカイブをダウンロードして解凍し、ライブラリに含まれるソースコードからgpc.cとgpc.hをソース展開後のディレクトリのexternal/gpcにコピーします。
    (これは後述のスクリプトで実行されます)
    アーカイブファイルをダウンロードして、configureを実行する時に指定する --with-ant-home の指定先に展開しておきます。
    perlのzipモジュールも必要です。
    Archive-ZipとCompress-Zlibのアーカイブファイルを入手し、それぞれを展開した後に次のようにしてビルド & インストールしておきます。

    $ perl Makefile.PL
    $ make
    $ make test
    $ make install

    ソースコードの入手

    現在、OpenOffice.org 2.0のソースコードはtarボールにより提供されていません。CVSレポジトリよりダウンロードする必要があります。以下のようなコマンドによりダウンロードができます。ちなみに、OpenOffice.org 2.0の開発はHEADブランチで進んでおり、マイルストーンごとにSRC680_m62といったようなタグがうたれていま す。${BRANCH_TAG}にはこのタグを指定してください。62という数字はマイルストーン番号であり、2週間おきにマイルストーンが設定されてい ます。また、これよりソースコードのディレクトリを${SRC_ROOT}とします。

    $ mkdir ${SRC_ROOT}
    $ cd ${SRC_ROOT}
    $ export CVSROOT=":pserver:anoncvs@anoncvs.services.openoffice.org:/cvs
    $ cvs co -r ${BRANCH_TAG} OpenOffice

    ディレクトリ名に空白を含むパスの下にソースファイルを展開すると、ビルドの際にトラブルの原因となるかもしれませんので避けるようにしましょう。

    日本語環境でのビルドのための修正

    OpenOffice.orgの原型はドイツで開発され、ソースコード内の文字(列)定数およびコメントにドイツ語で使用される0x80以上のラテン文字が含まれます。
    また現在、OpenOffice.org内部では文字コードとしてUNICODE(UTF-8)が使用されています。
    これらの文字の一部には日本語版のマイクロソフトVisual C++のプリプロセッサ及びコンパイラで日本語シフトJIS文字の一バイト目と解釈されてしまい、次に続く改行文字やコンパイラで解釈される特殊文字が正しく解釈されない場合があります。
    ほとんどのソースファイルでインクルードされる${SRC_ROOT}/sal/inc/sal/config.hに$pragma setlocale("C")という一行を追加する事によって日本語シフトJIS文字と解釈しないようにする事が出来ます。

    ただし、一部のプロジェクトは例外となります。
    具体的には、hwpfilterの以下のファイルです。
    • ${SRC_ROOT}/hwpfilter/source/fontmap.cpp
    • ${SRC_ROOT}/hwpfilter/source/hcode.cpp
    • ${SRC_ROOT}/hwpfilter/source/hinfo.h
    • ${SRC_ROOT}/hwpfilter/source/hpara.h
    • ${SRC_ROOT}/hwpfilter/source/hwpeq.cpp
    これらに関して、Unicode対応のエディタを持っているのであれば、一度UTF-8エンコードで開いて保存しなおすとビルドが通るようになりました。
    (筆者は、EmEditorにて確認しました。)

    ビルドの環境設定

    環境設定は Cygwinツールキットの中で bash(bourne again シェル)でコマンドを走らせて実行します。
    ですが、その前に開発環境の設定をしておかなければなりません。
    環境変数includeおよびlib、pathがきちんとに設定されているのを確認して下さい。
    もし設定されていなければ、この段階で設定しておきます。

    以下は、筆者の場合の設定例です。

    INCLUDE=C:\Program Files\Microsoft SDK\Include;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\INCLUDE;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include

    LIB=C:\Program Files\Microsoft SDK\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\lib

    Path=C:\WINDOWS\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SDK\Bin;C:\Program Files\Microsoft SDK\Bin\WinNT;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;C:\Program Files\ConvertDSWSetup;C:\cygwin

    configureの実行

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

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

    で見ることができます。必要なものにリストしたプログラムについては上記の設定例のようにPATHに通しておき、(cygwin内で)JAVA_HOME やANT_HOMEも設定しておけば特にオプションをつける必要はないでしょう。ただし、日本語版をビルドする際には、--with-lang=jaオプ ションが必要です。この場合、日本語版と英語版の両方がビルドされます(英語版はデフォルトでビルドされます)。

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

    makeする前に

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

    $ cd ${SRC_ROOT}
    $ source ./winenv.set.sh (bashの場合)
    $ source ./winenv.set (tcshの場合)
    $ ./bootstrap

    ビルド開始

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

    dmake

    dmakeを始めたら、あとはただ待つのみです。Pentium 4 2.4GHz, メモリ512Mでだいたい25時間ぐらいかかりました。

    ビルドのログ

    ビルドのログをとる場合、やり方はいろいろありますが例えば、

    $ dmake 2>&1 | tee ログファイル名

    等とします。

    ビルドが終了したら

    エラー出力がなく、最後までビルドが終ったら${SRC_ROOT}/instsetoo_native/wntmsci10.pro/OpenOffice/install/ja
    (ただし、一部のパッケージがビルド出来なかった場合などは、${SRC_ROOT}/instsetoo_native/wntmsci10.pro/OpenOffice/install/ja_witherror)
    以下にOpenOffice.orgのインストールパッケージが出来ています。

    $ cd ${SRC_ROOT}/instsetoo_native/wntmsci10.pro/OpenOffice/install/ja
    $ setup.exe

    とすると、OpenOffice.orgがインストールされるはずです。

    このインストールパッケージを他の人に配布するには

    $ cd ${SRC_ROOT}/instsetoo_native/wntmsci10.pro/OpenOffice/install/ja
    $ zip ${SRC_ROOT}/OOo_1.9.m70_Win32Intel_install_ja.zip *

    とします。こうすると、${SRC_ROOT}にOOo_1.9.m70_Win32Intel_install_ja.zipというアーカイブができます。ビルドしたバイナリを配布するにはこのアーカイブを配ればよいです。また、アーカイブ名は適宜変更してください。

    モジュール毎のビルド

    ソースファイルの修正をしたり、特定のモジュールだけを再度ビルドする場合以下のように実施します。
    該当モジュール内の全てのものを再度ビルドする時は、初めに該当モジュールフォルダ内のwntmsci10.proフォルダを削除します。

    ソースファイルを修正後、該当モジュールのフォルダに移動します。

    $ cd ${SRC_ROOT}\(module)
    $ build

    該当モジュールのビルドがエラーなく完了したら、生成されたファイルを次のコマンドでsolver以下の所定のフォルダにコピーします。

    $ deliver

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

    自分でOpenOffice.orgをビルドするのはとても大変な作業で、特にソースコードをダウンロードしてからビルドを開始するまでには単純な作業を強いられます。
    この単純な作業を自動で行うためのシェルスクリプトを作成しました。是非、使ってみてください。


    Windows版 制作者: 増冨善幸
    デザイン:小浦寛裕
    $Id: build_windows_2_0.html,v 1.2 2005/01/16 08:38:03 curvirgo Exp $


  3. WindowsでのOpenOffice.org のビルド

    ビルドの概要

    ビルドは以下の手順で進めます。

    1. ビルドに必要なものを入手し適切な場所に用意します
    2. 日本語環境でのビルドのための修正を加えます
    3. ビルドの環境設定を行います
    4. ビルドの実行を行います

    ビルドに必要なもの

    ハードウェア

    ハードウェアの条件は英語版ドキュメントによれば以下の通りです。

    • インテル ペンティアム II
    • RAM 128M バイト推奨
    • 2G バイトの空きディスクスペース

    ソフトウェア

    Windows 版をビルドするには以下のソフトウェアが必要になります。

    すべてオープンソースでビルドできるのが理想的なのですが、残念ながらそうはいきません。最初の三つはオープンソースでなく、しかも有償のソフトです。

    • Windows NT 4.0 SP3 もしくはそれ以降

    筆者の環境は Windows xp Professional です。

    • マイクロソフト Visual C++ 6.0 サービスパック 3

    英語版ドキュメントではこうなっていますが、サービスパック 3 以降であれば大丈夫みたいです。Visual C++.netでもビルド可能かもしれませんが、筆者は試していません。

    • 4NT バージョン 2.5 もしくはそれ以降 (ftp://jpsoft.com/4nt/からダウンロードできます。)

    4NT は Windows NT 環境で動くコマンドシェルです。他のオープンソースシェルもしくはWindows 標準のシェル(コマンド プロンプト)では現在のところOpenOffice.org のビルドは実行できません。

    4NT をインストールしたら、インストール先ディレクトリに4NT.ini というファイルが以下の内容で出来ているか確認してください。

    (この内容は英語版ドキュメントの通りですが、4NTのバージョンによっては内容が違っているかもしれません。内容が違っていたら念のためこのセクションを4NT.ini にコピーしちゃいます。)

    [4NT]
    CommandSep = ^
    EscapeChar = Ctrl-X
    ParameterChar = &
    LocalAliases = Yes

    以降の無償で入手できるツールも必要です。

    おなじみの Windows で *unix* 互換のツールを動かす環境とコマンドツール群のキットです。

    英語版の解説には使用する Cygwinツールキットのバージョンごとの注意事項や準備事項がいろいろ書いてありますが、最新のものを入手するほうが手っとり早いです。ただし、一つだけやっておくことがあります。

    Cygwin ツールキットのコマンドの中には *uinx*互換のシンボリックリンク (Windows のショートカットのようなもの)になっているものがあります。ビルドは 4NTの環境で実行しますが、この中ではシンボリックリンクが認識されません。したがって該当のファイルをコピーしておく必要があります。Cygwinの シェルで以下の一行コマンドを実行し awk.exe, gunzip.exe, tar.exe を実際にコピーします。

    $ cd /usr/bin && for files in awk.exe tar.exe gunzip.exe; do cp -p $files $files.new && rm $files && cp -p $files.new $files && rm $files.new; done

    • マイクロソフトアセンブラ

    アセンブラは Visual C++ もしくは Visual Studioと一緒にすでにインストールされている可能性があります。必要なファイル(ML.EXE と ML.ERR) の所在を確認してみてください。存在しない場合はフリーなバージョンを入手する方法がhttp://www2.dgsys.com/~raymoon/faq/masm.html#9にあります。

    • Info-zip の zip.exe バージョン 2.2 またはそれ以降

    Cygwin ツールキットにも Info-zip の zip.exe は含まれていますが、これはCygwin の DLL を必要としますので Cygwin 環境以外でうまく動作しません。Windows の DLL のみで動くバージョンを Info-zip のオリジナルサイトhttp://www.info-zip.org/から入手し、Cygwin のものと置き換えます。

    実行パスの検索順序で誤って Cygwinのものが動いてしまわないよう、置き換えてしまうことが肝心です。

    • マイクロソフト プラットフォーム SDK に含まれる MDAC SDK (May 2002 もしくはそれ以降) およびコア SDK (MDAC SDKが依存します。)

    マイクロソフトの開発環境と一緒にインストールされていれば更新する必要はないのかもしれませんが、念のため最新版をhttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/から入手しましょう。*ヒント* (643 以前のバージョンをビルドする場合は MDAC SDK を実際にインストールしなくてもかまいませんが、代わりに MDAC SDK のキャビネットもしくはインストールディレクトリから AdoCtint..h と SqlUcode.h をソース展開後のディレクトリの external/download にコピーします。)

    • マイクロソフト Layer for Unicode - unicows.dll

    Windows 95/98/Me では Windows のユニコード APIについてはごく限定されたものしかサポートされません。これを補完するのがこの DLL で、再配布可能なファイルとしてマイクロソフトが提供しています。あらかじめ開発環境で Windows ディレクトリに入れておきます。http://download.microsoft.com/download/platformsdk/Redist/1.0/W9XMe/EN-US/unicows.exeから入手しましょう。

    • gpc 一般多角形クリップライブラリリリーズ 2.31

    http://www.cs.man.ac.uk/aig/staff/alan/software/にあります。tarball をダウンロードして解凍し、ライブラリに含まれるソースコードから gpc.c と gpc.h をソース展開後のディレクトリの external/gpc にコピーします。

    ソースコードの入手

    最後に、もちろんソースが必要です。

    英語版以外のヘルプはソースからビルドされませんので、別に入手する必要があります。

    OpenOffice.org の一部のモジュールだけをビルドしたい場合にはソースと一緒に solver を入手しておくと便利です。フルビルドには solver のビルドも含まれるのでフルビルドする場合は solver を入手する必要はありません。

    ソースおよび solver は http://www.openoffice.org/dev_docs/source/download.htmlから tarball を入手し解凍します。ディレクトリ名に空白を含むパスの下にインストールするとビルドでトラブってしまいますので避けたほうがいいです。*ヒント*

    一部のモジュールだけをビルドしたい場合に は最新の solver を入手・解凍するとともに、ソース全体の tarball からモジュールに必要なサブディレクトリのみを解凍するか、該当のサブディレクトリツリーを CVS で入手します。モジュールは開発プロジェクトごとにサブツリーに分かれていますが、config_office 以下のサブツリーはビルド環境を設定するためには必ず必要です。

    ヘルプは http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/helpcontent_81_wnt.zip から入手します。

    '81' は国際電話の際の日本の国コードです。日本語以外のヘルプソースも各種提供されています。

    解凍した後に出てくる autocorr81.zip... などのファイルをソース展開後のディレクトリの solver/643/wntmsci7.pro/pck ('643' はソースのバージョンです。)に入れておきます。一つだけ各言語共通のファイルがありますが、内容は同じですから同じものが存在する場合は上書きしてし まってもコピーしなくても問題はありません。

    日本語環境でのビルドのための修正

    OpenOffice.org の原型はドイツで開発され、ソースコード内の文字(列)定数およびコメントにドイツ語で使用される0x80以上のラテン文字が含まれます。これらのラテン 文字の一部には日本語版のマイクロソフト Visual C++ のプリプロセッサ及びコンパイラで日本語シフト JIS 文字の一バイト目と解釈され、次に続く改行文字やコンパイラで解釈される特殊文字が正しく解釈されない場合があります。

    ソースコードをチェックし、これらを修正します。Cygwin内でこのスクリプトを走らせるとうまくいくかもしれません。

    ビルドの環境設定

    ビルドは 4NT シェルで実行しますが、環境設定は Cygwin ツールキットの中で bash (bourne again シェル) でコマンドを走らせて実行します。

    $ cd /cygdrive/c/oo_643c_src/config_office

    (Cygwin 中では、各ドライブのルートドライブを "/cygdrive/[ドライブ文字]" と表記します。またパス名中の各ディレクトリ名の区切りは "/" を使います。)

    $ bash configure --with-lang=ENUS,JAPN

    (画面にいろいろ出力される)

    Please enter the Java home directory: /cygdrive/c/jdk1.3.1_06

    (JDK の存在場所を聞いてきています。Cygwin 流の表記で答えます。)

    Please enter the path where the ml.exe assembler is located: /cygdrive/c/progra~1/masm

    (ツール類の存在場所に実行ファイル検索パスが通っていない場合は聞いてきます。同じく Cygwin 流で答えますが、ディレクトリ名に空白を含んではいけません。名前に空白を含むディレクトリは短い MS-DOS ファイル名を使います。)

    (またまた画面にいろいろ出力される)

    $ exit

    ソースツリーの一番上のディレクトリに winenv.bat というバッチファイルが作成されています。これを 4NT シェルの中で実行するとビルド環境が設定されます。

    英語版では開発中のソースで環境設定する場合の注意事項が書いてありますが、tarball で公開されているソースからのビルドであれば気にする必要はないでしょう。

    ビルドの実行

    ビルドは 4NT シェルの中で実行します。winenv.bat はビルドのつど実行してください。環境が変わっていなければ再度configureを実行する必要はありません。

    初めて winenv.bat を実行するときには dmake ツールがコンパイルされます。

    フルビルド

    ソースツリーの一番上のディレクトリ (以降 $SRC_ROOT と表記します) に移動します。

    C:\4NT cd $SRC_ROOT

    ソースに変更を加えずに再ビルドする場合 (一度ビルドしたあとデバッグ情報を加えて再ビルドするなど) は、先に中間ファイル、出力ファイルを削除します。Cygwin 内でやるのが便利です。

    $ rm -r /cygdrive/c/$SRC_ROOT/*/wntmsci7.pro

    4NT シェル内で以下のコマンドでビルドを行います。

    $SRC_ROOT dmake

    ペンティアム III にRAM 256M バイトのマシンでも10時間かかるそうです。

    英語版ドキュメントでは依存関係に注意しながら個別のサブディレクトリごとにビルドしても良いと書いてありますが、フルビルドするのだったらそんな必要はありませんよね。

    インストーラとアプリケーションの配布ファイルは サブツリー instsetoo の下、$SRC_ROOT\instsetoo\wntmsci7.pro\81\normal というディレクトリに作られます。'81' は例によって国コードです。ソースのバージョンによっては拡張子 .zip のファイルが出来ていますが、これは配布する必要がありません。

    一部分だけのビルド

    OpenOffice.org の要素はいくつかのプロジェクトに分かれて開発されており、さらにその中の各モジュールがソースツリーの中のサブツリーになっています。

    各モジュールは相互にかなり複雑な依存関係がありますが、他のモジュールが依存するファイルは直接の依存でなく、すべて solver というサブツリーにコピーされ solver 以下のファイルに依存するよう環境設定されています。

    従って、solver が最新の状態になっていれば、フルビルドを行わなくても個々のモジュールのサブツリー中のソースに変更を加えたものをビルドしたり、デバッグ情報を加えてビルドしたりすることが可能です。

    該当モジュールのサブディレクトリに移動します。

    C:\4NT cd $SRC_ROOT\(module)

    ソースに変更を加えずに再ビルドする場合 (一度ビルドしたあとデバッグ情報を加えて再ビルドするなど) は、先に中間ファイル、出力ファイルを削除します。

    $SRC_ROOT\(module) rm -r wntmsci7.pro

    ビルドします。

    $SRC_ROOT\(module) build

    デバッグ情報付きでビルドする場合は以下のようになります。

    $SRC_ROOT\(module) build debug=true

    ビルドが終わったら必要なファイルを solver にコピーします。

    $SRC_ROOT\(module) deliver

    インストーラとアプリケーションの配布ファイルを完全に作り直したい場合は、サブツリー instsetoo でも build を行う必要があります。ファイルはサブツリー instsetoo の下、$SRC_ROOT\instsetoo\wntmsci7.pro\81\normal というディレクトリに作られます。'81' は例によって国コードです。

    ちょっとしたヒント

    空白を含むパスにソースを置いてもパス名の指定に常に短いファイル名を使ってやればビルド は出来そうに思えます。しかし実際はリソースコンパイラがリソースをインクルードするときに"~"(チルダ記号)を含むパスを受け付けないためビルドが止 まってしまいます。配布されているメイクファイルにオマジナイをしてチルダを含むパスの代わりに相対パスを使うようにしてやればうまくいきます。

    >$ cd $SRC_ROOT/solenv/inc && cp -p _tg_app.mk _tg_app.mk.orig && sed -e 's/\$(APP\([0-9][0-9]*\)ICON) >>/icons\\\$(APP\1ICON:b).ico >>/' _tg_app.mk > temp && mv temp _tg_app.mk

    Microsoft Core SDK に含まれるunicows.libの2002年10月21日のタイムスタンプのものにバグがあり、ビルド643cではリンク時にエラーが出ます。バグのあるモジュールはたぶん使っていないので、該当の関数を除外してやりましょう。

    $ cd $SRC_ROOT/sal/systools/win32/uwinapi && cp -p unicows.dxp unicows.dxp.orig && sed -e 's/RasDialW/;&/' unicows.dxp > temp && mv temp unicows.dxp

    debug=true 指定等の条件つきビルドは充分テストされていないらしく、エラーがバンバン出ます。これはコツコツ修正するしかないでしょう。


    制作者:小野隆志
    デザイン:小浦寛裕
    $Id: build_windows.html,v 1.3 2003/12/30 01:02:05 maho Exp $

0 件のコメント: