連絡先 トップに戻る 最初に戻る 前に戻る 次へ進む
$Date: 2017-05-06 22:21:48 +0900 (2017/05/06 (土)) $
$Revision: 1117 $

SSL のサポート付きでコンパイルする方法 (VS2005)

この情報は古いです

概要

VS2005 で Subversion を SSLサポートを有効にしてコンパイルする方法を簡単に 説明します。

以下の手順を既に行っていることを前提としています。

  1. 最小の構成でコンパイルする (VS2005)

準備

必要なファイルの入手

下準備

以下のような感じでファイルを置くとして以後の説明をする。
│
├─common
│   │
│   ├─db4-win32
│   ├─openssl-0.9.8d
│   ├─httpd-2.0.59
│   ├─neon-0.26.2
│   └─zlib-1.2.3
│
└─trunk (subversion のソースコード)
      │
      ├─INSTALL
      │  ... (中略) ...
      └─gen-make.py

OpenSSL のコンパイル

OpenSSLを解凍したディレクトリを以下 c:\...\openssl-0.9.8d とします。
  1. スタートメニューから [Microsoft Visual Studio 2005] -> [Visual Studio Tools] -> [Visual Studio 2005 コマンド プロンプト] を選ぶ。
  2. OpenSSL のソースコードのディレクトリに移動する。
  3. 以下のコマンドを入力する

    OpenSSLでアセンブラを使わずにコンパイルする場合

    c:\...\openssl-0.9.8d> perl Configure VC-WIN32
    c:\...\openssl-0.9.8d> ms\do_ms
    c:\...\openssl-0.9.8d> nmake -f ms\ntdll.mak
    
    OpenSSLでMASM を使う場合(詳細は OpenSSL の INSTALL.W32 を読むこと)
    c:\...\openssl-0.9.8d> perl Configure VC-WIN32
    c:\...\openssl-0.9.8d> ms\do_masm
    c:\...\openssl-0.9.8d> nmake -f ms\ntdll.mak
    

プロジェクトファイルの作成

以下のコマンドを subversion のソースコードのルートで実行する。 (見やすくするため改行していますが、実際には1行で入力します。)
c:\...\trunk> python gen-make.py -t dsp 
	--with-openssl=..\common\openssl-0.9.8d
	--with-neon=..\common\neon-0.26.2
	--with-berkeley-db=..\common\db4-win32
	--with-zlib=..\common\zlib-1.2.3 
	--with-httpd=..\common\httpd-2.0.59
ルートディレクトリにソリューションファイルができる
subversion_vcnet.sln
以下のディレクトリにプロジェクトファイルができる
build\win32\vcnet-vcproj

Subversionのコンパイル

subversion_vcnet.sln を VS2005 で開いて __ALL__ または __ALL__TESTS__ の 構成を選択してリビルドする。 SSL を無効にした状態でコンパイルした後で、SSL を有効にしてコンパイルする 場合、リビルドしないと再コンパイルが必要なのに 再コンパイルが走りません。最初から SSL サポートを有効に してコンパイルする場合、リビルドは不要です。

svn コマンドの実行準備

以下のような構成でファイルをコピーする。

gen-make.py を実行するときに --disable-shared を指定した場合

│
├─libapr-1.dll ( APR 0.9.x の場合 libapr.dll)
├─libapriconv-1.dll (同様に libapriconv.dll )
├─libaprutil-1.dll  (同様に libaprutil.dll )
├─libdb44.dll
├─libeay32.dll
├─ssleay32.dll
├─svn.exe
├─svnadmin.exe
├─svndumpfilter.exe
├─svnlook.exe
├─svnserve.exe
├─svnsync.exe
└─svnversion.exe

gen-make.py を実行するときに --disable-shared を指定しなかった場合

│
├─libapr-1.dll ( APR 0.9.x の場合 libapr.dll)
├─libapriconv-1.dll (同様に libapriconv.dll )
├─libaprutil-1.dll  (同様に libaprutil.dll )
├─libdb44.dll
├─libeay32.dll
├─ssleay32.dll
├─libsvn_client-1.dll
├─libsvn_delta-1.dll
├─libsvn_diff-1.dll
├─libsvn_fs-1.dll
├─libsvn_ra-1.dll
├─libsvn_repos-1.dll
├─libsvn_subr-1.dll
├─libsvn_wc-1.dll
├─svn.exe
├─svnadmin.exe
├─svndumpfilter.exe
├─svnlook.exe
├─svnserve.exe
├─svnsync.exe
└─svnversion.exe

注意

APR のDLLは異なるバージョンのファイルを混ぜて置かないこと。 例: libapr-1.dll と libapr.dll 等

svn コマンドの実行確認

svn.exe を実行して以下の出力が出ることを確認する。
c:\...\trunk\Release\subversion\svn> svn --version
svn, version 1.5.0 (dev build)
   compiled Nov 18 2007, 16:21:05

Copyright (C) 2000-2007 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme