日曜日, 11月 30, 2008

Visual Studio Epress 2008への疑問 ー 進化に伴うジレンマ

Windows上でVisual Studioを使って、ネイティブプログラムを開発する方は依然として、まだたくさんいる中に、Visual Studio Epress 2008への進化に伴って、MFC/ATLがその中からいなくなってしまい、なんか、口に出せない思いがいっぱいでした。
今日運がよく、Visual Studio 2005 Express Edition 日本語版ダウンロードからVisual Studio 2005 Express Editionをダウンロードすることが出来て、これを使って、何とかなるぞという心境で、楽しくプログラムしています。

Visual Studio Express 2008 FAQ

土曜日, 11月 29, 2008

Visual Studio and File Encodings

日本語版のWindows上にVisual Studio 2008 でOpenOffice 3.0のCファイルをコンパイルしようとすると、なんとエンコードエラーで終了させてしまたことに関して、詳しく調べると、Visual Studio 2008の中にUNICODEとローカルエンコードのソースしか認識できなさようです(Visual Studio and File Encodings)。javaのコンパイルのようにエンコードを指定できるかを探していると、clのコマンドラインにそのようなスイッチがありませんでした?!

File Encoding in Visual Studioに下のような遣り方を提起していました。
What can be done about it? It looks like we have 3 options:
  1. manually save or re-save your files using "Save with Encoding";
  2. change your system language to "English" in control panel (this is kind of wrong);
  3. re-save Visual Studio templates (in Common 7\IDE\ItemTemplates) in UTF-8 with signature


Visual C++ Compiler Options

解決方法はこれしかないでしょうか?

木曜日, 11月 27, 2008

Windows版OpenOfficeの64bitへの道(肆) ー 32bitの試み

いよいよ本格に入りますけど、なかなかMicrosoft Visual Studio Expressを使って、32bitを試そうとします。


  1. Cygwinのインストール
    • gccもインストールの必要があり、インストール方法はここに参照します(Cygwin Setup ⇒ All ⇒ Devel)
    • zipコマンドは標準では組み込まれないので、インストール時に手動で選択する必要があります(Cygwin Setup ⇒ All ⇒ Archive)

  2. $SRC_ROOT/external/msiへのファイルのコピー
    • InstMsiA.exe
    • InstMsiW.exe

  3. Visual C++ 2005 Expressの場合、$SRC_ROOT/external/msvcp80へのファイルのコピー
    • msvcm80.dll
    • msvcp80.dll
    • msvcr80.dll

    Visual C++ 2008 Expressの場合、$SRC_ROOT/external/msvcp90へのファイルのコピー
    • Microsoft.VC90.CRT.manifest
    • msvcm90.dll
    • msvcp90.dll
    • msvcr90.dll

  4. $SRC_ROOT/external/unicowsへのファイルのコピー
    • unicows.dll

  5. $SRC_ROOT/external/dbghelpへのファイルのコピー
    • DbgHelp.dll

  6. $SRC_ROOT/external/gdiplusへのファイルのコピー
    • gdiplus.dll

  7. Visual C++ 2008 Expressの場合、C:\Program Files\Common Files\Merge Modulesから、$SRC_ROOT/external/msm90へのファイルのコピー
    • Microsoft_VC90_CRT_x86.msm
    • policy_9_0_Microsoft_VC90_CRT_x86.msm

  8. Visual C++ 2005 Expressの場合、この問題に注意
    • Some modules do not build correctly with MS Platform SDK - April 2005 Edition if the library ($PSDK_HOME/Lib/libcp.lib) is found. Remove/rename/backup that file and restart configure. Details about this problem can be found in issue 49856.

  9. $SRC_ROOT/moz/zipped/へのPrebuild mozilla librariesのコピー

    ソースからコンパイルする時、
    1. http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7.5/source/からmozilla-source-1.7.5.tar.bz2或いはmozilla-source-1.7.5.tar.gzをmoz/download/へコピー
    2. ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71から
      vc71-glib-1.2.10-bin.zip
      vc71-libIDL-0.6.8-bin.zipをmoz/download/へコピー
    3. http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zipからwintools.zipをmoz/download/へコピー

  10. Native windows programsのシンボリックリンクされたコマンドに関して、以下のコンマンドでリンクを解消します
    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

    この中にgunzip.exeでなく、gunzipだけです。
    cd /usr/bin && for files in awk.exe tar.exe gunzip; do cp -p $files $files.new && rm $files && cp -p $files.new $files && rm $files.new; done

  11. 自己インストーラを作成する時、NSISをインストールする必要があります。
    • --with-nsis-path=<absolute path to nsis.exe>

  12. ファイルのエンコードの変更
    1. $SRC_ROOT/libxml2/wntmsci12.pro/misc/build/libxml2-2.6.31/testapi.c
    2. $SRC_ROOT/qadevOOo/runner/helper/OfficeProvider.java

  13. atlwin.hのソース変更
    Microsoft Platform SDK for Windows Server 2003 R3\Include\atl\atlwin.hをここに書かれたように変更する。
      (Line 1753):
    - for(i = 0; i < m_aChainEntry.GetSize(); i++)
    + for(int i = 0; i < m_aChainEntry.GetSize(); i++)

  14. enable the use of tcsh with --with-use-shell=tcsh or the use of bash with --with-use-shell=bash

  15. MinGWでコンパイル時、--with-mingwin=yes(OpenOffice.org 3 MinGW+tcsh Buildを参照)

  16. configureオプション(config_officeに)
    $./configure --help

  17. 環境設定
    • tcsh:source winenv.set
    • sh:source winenv.set.sh

  18. $SRC_ROOTの直下に./bootstrapを実行して、以下の二つのファイルがされたことになります
    1. $SRC_ROOT/solenv/wntmsci12/bin/dmake.exe
    2. $SRC_ROOT/solenv/wntmsci12/bin/guw.exe

  19. フルビルド
    $ dmake
    ビルドのログがほしい時、
    $ dmake 2>&1 | tee ログファイル名

  20. 再フルビルドの時、中間ファイル、出力ファイルを削除して行います。(XXはバージョンによって変わります)
    $ rm -r /cygdrive/c/$SRC_ROOT/*/wntmsciXX.pro
    $SRC_ROOT$ dmake

  21. モジュール毎のビルド
    • 該当モジュールのサブディレクトリに移動:cd $SRC_ROOT/(module)
    • 中間ファイル、出力ファイルを削除:$SRC_ROOT/(module) rm -r wntmsciXX.pro
    • ビルド:$SRC_ROOT/(module) build
      或いは
      $SRC_ROOT/(module) build debug=true
    • solver以下の所定のフォルダにコピー:$SRC_ROOT/(module) deliver

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

Windows上にできるだけ無料のMinWGでOpenOfficeの64bit版をコンパイルしようとして、以下の参考リンクを見つけましたので、ここにリンクします。
  1. OpenOffice.org 3 MinGW+tcsh Build或いはOpenOffice.org 3 MinGW+tcsh Build(OpenOffice related MLs in Japanese)
  2. Building OpenOffice.org with the MinGW compiler
  3. http://tools.openoffice.org/dev_docs/build_windows_tcsh.html
  4. Need Help, Problem on building with MinGW
  5. Supported compilers for OpenOffice.org 3.0 builds

水曜日, 11月 26, 2008

Fedoraのディスプレイ

Fedora 9 のディスプレイ設定
  1. GNOME:システム⇒管理⇒ディスプレイ(/usr/bin/system-config-display)
  2. KDE:管理⇒ディスプレイ(/usr/bin/system-config-display)


Fedora 10にxorg.congが使われていなかったので、設定の仕方はここに参考しています。

Topic: Problem with Fedora 10 on VirtualBox

The answer from axel is as follows


vamos you must create an xorg.conf file which isn't used be Fedora 10 since it uses the latest Xorg 1.5. To do so type in a terminal:

su -
yum install system-config-display
system-config-display

Here go to the Hardware tab and select the vboxvideo driver. Of course you must have vbox additions installed, which you said you have. Wink Press OK two times to save the changes and reboot Fedora.

Now type again

su -c 'system-config-display'

and check if there are other screen resolutions available. If there aren't you must manually add them in xorg.conf like this

su -c 'gedit /etc/X11/xorg.conf'

Here paste the following text. In Modes you can put the resolutions you want.

Code:
# Xorg configuration created by system-config-display

Section "ServerLayout"

# InputDevice "Keyboard0" "CoreKeyboard"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
EndSection

Section "Monitor"
Identifier "Monitor0"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "vboxvideo"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection

オープンソースのダウンロードサイト

オープンソースのダウンロードサイトを一つ挙げて、リンクをつけます。

http://ftp.jaist.ac.jp/pub/

Index of /pub



[DIR] CPAN/
[DIR] CTAN/
[DIR] DragonFly/
[DIR] FreeBSD-PC98/
[DIR] FreeBSD-jp/
[DIR] FreeBSD/
[DIR] GNU/
[DIR] Linux/
[DIR] NetBSD-daily/
[DIR] NetBSD/
[DIR] OpenBSD/
[DIR] RFC/
[DIR] apache/
[DIR] cygwin/
[DIR] eclipse/
[DIR] mergedoc/
[DIR] mozilla.org/
[DIR] news-archive/
[DIR] openoffice/
[DIR] pkgsrc/
[DIR] postgresql/
[DIR] sourceforge.jp/
[DIR] sourceforge/
[DIR] videolan/




ライブCDの部屋
理研にあるライブCDの部屋さんのミラーサイト

火曜日, 11月 25, 2008

Openofficeにおける形態素解析に基づいた単語区切り

基礎として、形態素解析の基礎 と連載 検索エンジンを作る
  1. このスレッドに結構いいものがあります ー 形態素解析に基づいた単語区切り

  2. MeCab: Yet Another Part-of-Speech and Morphological Analyzer
    MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです. 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています. パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します. ちなみに和布蕪(めかぶ)は, 作者の好物です.

  3. L-BFGS

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 $

SCIM入力メソッドの設定

MandrivaのSCIM入力メソッドの設定

Oracle Instant Client for Linux

Oracle Instant Client for Linux を試してみる

Linux下cx_Oracle连用OCI免安装连接Oracle

Instant Client Downloads for Linux x86

金曜日, 11月 21, 2008

GUI Design Tool

GUI設計に関するツールがたくさんあって、詳しく論じることはできません。以下によく使われる幾つかを上げます。Pythonに関するGUI設計(GUI Programming in Python)はここに沢山載せてあります。
  1. MS MFC - 昔馴染みで、今全然使っていません。

  2. Glade - GTKプログラムの画面ツールで、作成したXMLをそのままプログラムの中に読み込んで画面を作成する。
    1. Glade::PerlGenerate - Generate Perl source from a Glade XML project file.

  3. QT Designer - QT画面作成用ツールで、作成したXMLをソースコードに変換して、プログラムの形になります。
    1. pyuic4 - QT4 DesignerのXMLファイルをpythonソース変換するツール


  4. wxWidgets
    1. wxGlade - wxPython画面設計ツールで、python画面作成の時、よく使われます。 For a complete IDE, maybe Boa Constructor, PythonCard or Spe(which includes wxGlade itself, BTW...) is the right tool.
    2. wxPyWiki
    3. wxPython - wxPython Indexに沢山の例があります


  5. Tkinter -

    1. PythonWare library There are many Tutorial, Introduction and Library Reference about Python Imaging Library (PIL),Tkinter and Python

    2. effbot.org

      Some Articles. Hundreds of articles on Python and related technologies (including PIL, ElementTree, Tkinter, and other extensions).

      Some Books. (the eff-bot guide to) The Python Standard Library, Python Imaging Library Handbook, An Introduction to Tkinter.

      Some Downloads. Assorted Python modules, extensions, and other artifacts. And an RSS reader.






Pythonのグラフィカルユーザーインターフェースパッケージ

木曜日, 11月 20, 2008

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

Porting to x86-64 (AMD64, EM64T)

Linux OpenOffice X64のダウンロードはここ

OpenOffice 64bit版のコンパイルは64bitのMSコンパイルが必要です。このリンクにわずかの情報があって、参考になるでしょう。

Only the newest Visual Studio 2005 is ready to compile C++ 64bit code. Further only versions >= Visual Studio 2005 Standard
will support that.
see also "http://msdn2.microsoft.com/en-us/library/hs24szh9(VS.80).aspx".

64-bit OpenOffice.org installed and working on a linux sandbox

32bitのjavaから64bitのOSのAPIを呼び出そうとすると、Cote’s Weblogにすばらしい内容があって、下にそのままコピーしました。

Also, in response to last week’s 64 bit talk, Roger V. sent this in:



A 64-bit OS can access more memory because it’s using 64-bit address pointers. In C, C++, and assembly language, one deals directly with address pointers.


Whereas in Java, C#, or the myriad of various scripting languages, one is shielded from raw pointers and one doesn’t make direct calls to the OS from these mangaged languages - unless done through a special mapping or adapting mechanism.


So in Java one passes references to objects around and has no idea how big the reference is. Unlike address pointers in C, a Java reference is not directly manipulated. Now from Java, if you want to interact with the native OS, where address pointer types do matter, you have to use the JNI and write that code in C. Java interacts via JNI conventions with the C code, and the C code can interact with any native OS APIs. The C code can then deal with any 32-bit vs 64-bit conversion issues (perhaps by even dropping into some inline assembly language if necessary).


When you pass an address (like a pointer to a string buffer) to an OS API, the language signature for calling the API will make the type of address pointer (32-bit or 64-bit) very, very explicit indeed. You have to pass it the kind of address pointer that the API expects.


So 32-bit code running on a 64-bit OS has to make any system call interactions via some sort of thunk layer. Hence when I run 64-bit Firefox on 64-bit Ubuntu and attempt to use the Adobe Flash player (which to this day is still only available in 32-bit versions no matter what OS), I have to use a special adapter plugin that provides for this thunking. (Same goes for any C/C++ shared libraries - the 32-bit app will have to have 32-bit versions of its shared libraries.)


Now with Apple’s latest version of the Mac OS X, the thunking is essentially the other direction. Apple is still using an essentially 32-bit OS, but wants to provide the ability to run 64-bit software applications (Photoshop) that can address beyond 4 GB of memory. So they have a special 64-bit compatible thunking layer for such 64-bit programs that adapts OS calls down to the actual 32-bit native OS API calls. If there is a comprehensive 64-bit thunking layer for all OS APIs, then 64-bit software, including their shared libraries, can be ported to run.


If you young whipper snappers had been around programming in C or assembly back in the days of the 8088/8086/80286 and then dealt with the transition from 16-bit code (MS-DOS, Win3.0) to 32-bit architecture (Win32), this 32-bit to 64-bit thing would all be old hat. Also, if you recall, Win95 was a 32-bit API programming model that thunked down to an underlying 16-bit MS-DOS underpinning.


Hopefully 64-bit will last us longer than 32-bit has - before we have to deal with the 64-bit to 128-bit transition.


–RogerV




Java Native Access
- Dynamically access native libraries from Java without JNI.


32-bit or 64-bit JVM? How about a Hybrid?


Building OpenOffice.org 2.x (680er series) under Windows with MinGW compiler+tcsh

女性の撮りかた講座

女性の撮りかた講座

家内を美人に写す方法を教えてください

PythonのTkで画像表示

PythonのPILの下にImageTkがなくなっている見たいで、何かTkinter中のPhotoImageで画像を表示しようとしていますが、このPhotoImageはGIF, PPM/PGM形式しか表示できなくて、よく使われるJPEGも表示したいという思いで探し回りまして、なかなか出てきませんでした。
以下はウェブに表示したを改造して、ここに張り付けます。

 1 import Tkinter
 2 import random
 3 from PIL import Image
 4
 5 def changeImage():
 6     global listOfImages
 7     im = listOfImages[random.randint(0,8)]
 8     box1Label.configure(image=im)
 9
10 top = Tkinter.Tk()
11 r7 = Tkinter.PhotoImage(file="m.gif")
12 b7 = Tkinter.PhotoImage(file="m.gif")
13 A = Tkinter.PhotoImage(file="m.gif")
14 B = Tkinter.PhotoImage(file="m.gif")
15 C = Tkinter.PhotoImage(file="m.gif")
16 f = Tkinter.PhotoImage(file="n.gif")
17 G = Tkinter.PhotoImage(file="n.gif")
18 P = Tkinter.PhotoImage(file="n.gif")
19 O = Tkinter.PhotoImage(file="n.gif")
20 # images are objects not strings
21 listOfImages = [r7, A, C, B, b7, f, P, G, O]
22 box1Label = Tkinter.Label(top, image=r7)
23 box1Label.grid(row=3, column=2)
24 changeButton = Tkinter.Button(top, text="Change", command=changeImage)
25 changeButton.grid(row=9, column=7)
26 Tkinter.mainloop()

火曜日, 11月 18, 2008

LinuxにおけるCUPS-PDFプリンタの設定

  1. プリンタの追加
    • Enter Device URI:cups-pdf:/
    • ドライバ選択:Generic
    • Models:CUPS-PDF Printer
  2. cups-pdfの設定ファイル
    • /etc/cups/cups-pdf.conf

JSP中のMXBeanの使い方

Using the Platform MBean Server and Platform MXBeans - Java SE Monitoring and Management Guide

JSP中のMXBeanの使い方
Paste this into a JSP in the ROOT webapp of Tomcat and hit it.

code:
--------------------------------------------------------------------------------

<%@ page import="java.lang.management.*, java.util.*" %><%
response.setContentType("text/plain");
Iterator iter = ManagementFactory.getMemoryPoolMXBeans().iterator();
while(iter.hasNext()){
MemoryPoolMXBean item = (MemoryPoolMXBean) iter.next();
MemoryUsage mu = item.getUsage();
long used = mu.getUsed();
long committed = mu.getCommitted();
long max = mu.getMax();
%>
MEMORY TYPE: <%=item.getName()%>
Used: <%=used%>
Committed: <%=used%>
Max: <%=max%>
<%}%>




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

Monitor and manage Java applications with JConsole
  1. Part 1 ー Localの設定
  2. Part 2 ー Remoteの設定

日曜日, 11月 16, 2008

Linux画面設計ツール

LinuxのGNOME,KDE画面設計に関わるツールは以下のものがあります。
  1. Glade - a User Interface Designer for GTK+ and GNOME

  2. Qt Designer is a powerful cross-platform GUI layout and forms builder. Qt provides integrated developer tools for rapid GUI development, translation and internationalization, documentation and cross-platform builds. Qt is also integrated with Visual Studio and Eclipse IDEs.


PyGTK

GNOME

Pythonで顔認識プログラムの参照例

このところにPythonでの顔認識の用例が有って、ここにリンクをつけます。

ここもOpenCVを使った顔認識を試してみる

金曜日, 11月 14, 2008

PyQt4の例

Pythonに使えるQTはバージョン3と4が結構ちがいますから、いきなり3から4に転換しようも、うまく馴染みませんでした。ネットにグーグルしても、用例がまだ少なくて、簡単にコピペできない現状でした。

An open source drawing and network collaboration program

本スキャン例(bookscan - PyQt-GUI Application for easy and quick scanning of books, with OCR and eBook output ) 別の関連項目

拡張モジュールのビルド: 小技と豆知識

拡張モジュールのビルド: 小技と豆知識
Microsoft Visual C++のオブジェクトファイル形式 (COFF) → Borland のオブジェクトファイル形式 (OMF)
coff2omf python25.lib python25_bcpp.lib
☆ coff2omf プログラムは、 Borland コンパイラに付属しています
VC → MinGW
  1. pexports python25.dll >python25.def
  2. dlltool --dllname python25.dll --def python25.def --output-lib libpython25.a

木曜日, 11月 13, 2008

PyQtの用例

PyQtの使い方について、無料のGUI Programming with Python: QT Editionを参照すれば、ある程度勉強になると思います。

Rapid GUI Programming with Python and Qt
用例をmandrivaにコンパイルできますが、実行時に、グラフィック関連にセグメンテーションエラーがでてしまい、今まで原因不明な状態でした。

Python(x,y) main componentsはていへん気になって、ここにリンクを張り付けます。


Trolltech websiteにあるQt Online Reference Documentation

Riverbank websiteにあるPyQt4 Class ReferencePyQt4 Reference Guide

水曜日, 11月 12, 2008

How to Profile Your Boot Time

Linuxの起動過程を知りたくて、いろいろな本を買い漁っていましたが、なかなか全全体像を把握できませんでした。今日LinuxTOYの你的 Linux 系统启动快吗を見て、bootchartを今慣れ親しんだmandrivaにインストールして確認したい思いです。
インストール仕方はHow to Profile Your Boot Timeに参照して、いいでしょう

火曜日, 11月 11, 2008

Pythonの画面設計関連

最近Pythonに大変興味を持ち、色々弄りました。この中に画面関連のテーマにはWindowsから、Linuxまであちこちブログを漁って、wxWdgets、Qt、GTKを比べてきて、正直にちょっと多すぎて、あまり区別できない状態でした。このPython GUI programming platforms for Windowsに詳細な比較があります。
PythonのGUI設計
QT
  • Qt Designer(pyuicでPythonソースに変更)

wxPython
  • wxGLADE(Linux)、xrc(Windows)