Visual C++またはPlatform SDKを使用した構築

PostgreSQL 9.0.0文書
前のページ | 巻戻し | 第 16章Windowsにおけるソースコードからのインストール | 早送り | 次のページ

# 16.1. Visual C++またはPlatform SDKを使用した構築

Microsoftが提供するVisual C++コンパイラスィートを使用してPostgreSQLを構築することができます。 これらのコンパイラはVisual Studio、Visual Studio Express、最近のバージョンのPlatform SDKにあります。 すでにVisual Studio環境が設定されているのでなければ、Microsoftから無料でダウンロードできるPlatform SDK内のコンパイラを使用することが最も簡単な方法です。

PostgreSQLはVisual Studio 2005およびVisual Studio 2008付属のコンパイラをサポートします。 Platform SDKのみを使用する場合、または64ビットWindowsで構築する場合にはVisual Studio 2008のみがサポートされます。

Visual C++を使用して構築するためのツールが`src/tools/msvc`ディレクトリに存在します。 構築する際に、MinGWやCygwinに付属するツールがシステムPATHに存在しないことを確認してください。 また、PATH上で必要なVisual C++ツールがすべて利用可能になっていることを確認してください。 Visual Studioでは、Visual Studio 2005 コマンドプロンプトを起動してください。 Platform SDKでは、スタートメニューのSDK以下に列挙されるCMD shellを起動してください。 64ビット版を構築したい場合には、それぞれ64ビット版のコマンドを使用する必要があります。 すべてのコマンドは`src\tools\msvc`ディレクトリから実行しなければなりません。

構築する前に、`config.pl`ファイルを編集して、変更したい設定オプションや使用する何らかのサードパーティ製のライブラリのパスを反映させる必要があるかもしれません。 まず`config_default.pl`ファイルを読み取り、解析することから始まり、そして`config.pl`内の何らかの変更が適用されて、すべての設定が決定されます。 例えば、Pythonインストレーションの場所を指定する場合、以下を`config.pl`に記載します。

    $config->{python} = 'c:\python26';

`config_default.pl`内の指定と異なるパラメータのみを指定する必要があります。

何か他に環境変数を設定する必要があれば、`buildenv.pl`という名前のファイルを作成し、そこに必要なコマンドを記載してください。 たとえば、PATHにbison用のパスを追加したいのであれば、以下を含むファイルを作成してください。

    $ENV{PATH}=$ENV{PATH} . ';c:\some\where\bison\bin';

## 16.1.1. 必要条件

PostgreSQLを構築するには以下の追加製品が必要です。 `config.pl`ファイルを使用してライブラリを利用できるディレクトリを指定してください。

Microsoft Platform SDK

  Microsoft Platform SDKのバージョンを入手可能な最新版までアップグレードすることを推奨します。 http://www.microsoft.com/downloads/からダウンロードできます。

  SDKのWindows Headers and Librariesを常にインクルードしなければなりません。 Visual C++ Compilersに含まれるPlatform SDKをインストールしている場合、構築のためにVisual Studioは必要ありません。

ActiveState Perl

  ActiveState Perlが構築生成スクリプトを実行するために必要です。 MinGWまたはCygwinのPerlでは動作しません。 また、PATH内に含められていなければなりません。 http://www.activestate.comからバイナリをダウンロードできます （注意：バージョン5.8が必要です。フリー版の標準配布で十分です）。

使用できるようになることが目的であれば以下の追加製品は必要ありませんが、完全なパッケージを構築する場合には必要です。 `config.pl`を使用してライブラリが利用できるディレクトリを指定してください。

ActiveState TCL

  PL/TCLを構築する時に必要です （注意：バージョン8.4が必要です。フリー版の標準配布で十分です）。

BisonおよびFlex

  CVSから構築する場合はBisonおよびFlexが必要です。 リリースファイルから構築する場合は不要です。 Bison 1.875またはバージョン2.2以降のみで動作することに注意してください。 またFlex 2.5.31以降が必要です。 Bisonはhttp://gnuwin32.sourceforge.netからダウンロードすることができます。 Flexはhttp://www.postgresql.org/ftp/misc/winflex/からダウンロードすることができます。

Diff

  リグレッションテストを実行するにはdiffが必要です。 http://gnuwin32.sourceforge.netからダウンロードできます。

Gettext

  NLSサポート付きで構築する場合はgettextが必要です。 http://gnuwin32.sourceforge.netからダウンロードできます。 バイナリ、依存物、開発用ファイルすべてが必要であることに注意してください。

MIT Kerberos

  Kerberos認証をサポートする場合に必要です。 MIT Kerberosはhttp://web.mit.edu/Kerberos/dist/index.htmlからダウンロードできます。

libxml2およびlibxslt

  XMLサポートのために必要です。 バイナリはhttp://zlatkovic.com/pub/libxmlから、ソースはhttp://xmlsoft.orgからダウンロードできます。 libxml2はiconvを必要することに注意してください。 同じ場所からダウンロードできます。

openssl

  SSLサポートのために必要です。 バイナリはhttp://www.slproweb.com/products/Win32OpenSSL.htmlから、ソースはhttp://www.openssl.orgからダウンロードできます。

ossp-uuid

  UUID-OSSPサポート（contribのみ）で必要です。 ソースはhttp://www.ossp.org/pkg/lib/uuid/にあります。

Python

  PL/Pythonを構築する場合に必要です。 バイナリはhttp://www.python.orgからダウンロードできます。

zlib

  pg_dumpおよびpg_restoreにおける圧縮をサポートするために必要です。 バイナリはhttp://www.zlib.netからダウンロードできます。

## 16.1.2. 64ビット版のWindowsにおける特別な考慮事項

64ビット版Windowsにおいてx64アーキテクチャのみでPostgreSQLを構築することができます。 Itaniumプロセッサをサポートしていません。

同じ構築用ツリーで32ビット版と64ビット版を混在させることはサポートされません。 構築システムは32ビット環境で動作しているか64ビット環境で動作しているかを自動的に検出し、それにしたがってPostgreSQLを構築します。 このため構築作業を始める前に正しいコマンドプロンプトを実行させることが重要です。

pythonやopensslなどのサーバサイドのサードパーティ製ライブラリを使用するためには、ライブラリも64ビット版である必要があります。 64ビット版のサーバで32ビット版のライブラリをロードすることはサポートされていません。 PostgreSQLがサポートするサードパーティ製のライブラリで32ビット版しか利用できないものが複数あります。 こうした場合、64ビット版のPostgreSQLで使用することはできません。

## 16.1.3. 構築

リリース条件（デフォルト）でPostgreSQLをすべて構築するためには、以下のコマンドを実行してください。

    build

デバッグ条件でPostgreSQLをすべて構築するためには、以下のコマンドを実行してください。

    build DEBUG

単一のプロジェクトのみを構築するためには、たとえばpsqlであれば、以下のコマンドを実行してください。

    build psql
    build DEBUG psql

デバッグのためにデフォルトの構築条件を変更するためには、以下を`buildenv.pl`ファイルに記載してください。

    $ENV{CONFIG}="Debug";

また、Visual Studio GUI内から構築することも可能です。 この場合はコマンドプロンプトから以下を実行しなければなりません。

    perl mkvcbuild.pl

その後に、生成された`pgsql.sln`（ソースツリーのトップディレクトリに存在します。）をVisual Studioで開いてください。

## 16.1.4. 整理およびインストール

ほとんどの場合、Visual Studioの持つ自動依存関係追跡により変更されたファイルが扱われます。 しかし、大規模な変更が行われた場合、インストレーションを整理する必要があるかもしれません。 このためには、`clean.bat`コマンドを実行してください。 これにより、生成されたファイルがすべて自動的に消去されます。 また、`dist`パラメータを使用して実行することも可能です。 この場合、`make distclean`のように振舞い、flex/bisonの出力ファイルも削除します。

デフォルトで、すべてのファイルは`debug`または`release`ディレクトリ以下のサブディレクトリに書き出されます。 これらのファイルを標準レイアウトでインストールし、データベースの初期化や使用に必要なファイルを生成するためには、以下のコマンドを実行してください。

    install c:\destination\directory

## 16.1.5. リグレッションテストの実行

リグレッションテストを実行するためには、まず必要なすべての部品の構築が完了していることを確認してください。 また、システムのすべての部品で必要とするDLL（手続き言語用のPerlのDLLやPythonのDLLなど）がシステムパスに含まれていることを確認してください。 もし含まれていなければ、`buildenv.pl`ファイルを介して設定してください。 試験を実行するためには、以下のコマンドのいずれかを`src\tools\msvc`ディレクトリから実行してください。

    vcregress check
    vcregress installcheck
    vcregress plcheck
    vcregress contribcheck

使用するスケジュール（デフォルトはparallelです）を変更するためには、コマンドラインに以下のように追加してください。

    vcregress check serial

リグレッションテストの詳細については第30章を参照してください。

## 16.1.6. 文書の構築

PostgreSQLの文書をHTML書式で構築するためには、いくつかツールやファイルが必要です。 これらのファイルをすべて格納するためのトップディレクトリを作成し、以下のリストに記載したサブディレクトリに格納してください。

OpenJade 1.3.1-2

  http://sourceforge.net/projects/openjade/files/openjade/1.3.1/openjade-1_3_1-2-bin.zip/downloadからダウンロードし、`openjade-1.3.1`サブディレクトリで伸長してください。

DocBook DTD 4.2

  http://www.oasis-open.org/docbook/sgml/4.2/docbook-4.2.zipからダウンロードし、`docbook`サブディレクトリで伸長してください。

DocBook DSSSL 1.79

  http://sourceforge.net/projects/docbook/files/docbook-dsssl/1.79/docbook-dsssl-1.79.zip/downloadからダウンロードし、`docbook-dsssl-1.79`サブディレクトリで伸長してください。

ISO文字エンティティ

  http://www.oasis-open.org/cover/ISOEnts.zipからダウンロードし、`docbook`サブディレクトリで伸長してください。

`buildenv.pl`ファイルを編集し、このトップディレクトリの場所を示す変数を追加してください。 例を示します。

    $ENV{DOCROOT}='c:\docbook';

文書を構築するためには、`builddoc.bat`コマンドを実行してください。 これは実際にはインデックスを作成するために、2回構築を行うことに注意してください。 生成されたHTMLファイルは`doc\src\sgml`に格納されます。

前のページ | ホーム | 次のページ
Windowsにおけるソースコードからのインストール | 上に戻る | Visual C++またはBorland C++を使用したlibpqの構築