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

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

この情報は古いです

概要

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

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

  1. 最小の構成でコンパイルする (VC6)
Subversion 用に Apacheを構築 (VC6) は必須ではありません。

準備

必要なファイルの入手

下準備

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

OpenSSL のコンパイル

OpenSSLを解凍したディレクトリを以下 c:\...\openssl-0.9.8d と します。
以下のようにコマンドを実行して、Makefile の設定を行った後、 OpenSSL をコンパイルする。

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

c:\...\openssl-0.9.8d> perl Configure VC-WIN32
c:\...\openssl-0.9.8d> ms\do_ms
c:\...\openssl-0.9.8d> "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
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> "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
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-zlib=..\common\zlib-1.2.3 
	--with-berkeley-db=..\common\db4-win32
	--with-httpd=..\common\httpd-2.2.3
ルートディレクトリにプロジェクトワークスペースができる
subversion_msvc.dsw
以下のディレクトリにプロジェクトファイルができる
build\win32\msvc-dsp

Subversionのコンパイル

subversion_msvc.dsw を VC6 で開いて __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