Berkeley DB 4.5.x を使う場合(見やすくするため整形しています)
c:\...\trunk>python gen-make.py -t vcproj --vsnet-version=2008 --disable-shared --with-openssl=..\common\openssl-0.9.8d --with-berkeley-db=..\common\db4-win32-4.5 --with-zlib=..\common\zlib-1.2.3 --with-httpd=..\common\httpd-2.0.59 Generating for VS.NET 2008 BDB not found, BDB fs will not be built Could not detect Ruby version. Ruby bindings will be linked with msvcrt-ruby18.lib Found installed perl version number. Perl bindings will be linked with perl58.lib Could not find installed SWIG, assuming version 1.3.25 swig not found; skipping SWIG file generation... Wrote: build\win32\vcnet-vcproj\__ALL_TESTS___vcnet.vcproj .... 以下略 ...Berkeley DB 4.4.x を使う場合
c:\...\trunk>python gen-make.py -t vcproj --vsnet-version=2008 --disable-shared --with-openssl=..\common\openssl-0.9.8d --with-berkeley-db=..\common\db4-win32-4.4 --with-zlib=..\common\zlib-1.2.3 --with-httpd=..\common\httpd-2.0.59 Generating for VS.NET 2008 Found libdb44.lib in ..\common\db4-win32-4.4\lib Could not detect Ruby version. Ruby bindings will be linked with msvcrt-ruby18.lib Found installed perl version number. Perl bindings will be linked with perl58.lib Could not find installed SWIG, assuming version 1.3.25 swig not found; skipping SWIG file generation... Wrote: build\win32\vcnet-vcproj\__ALL_TESTS___vcnet.vcproj .... 以下略 ...
リリース版のバイナリを入手して、最新のソースコードを入手する。
インストーラ形式を使うときは、国際化対応版のコンパイルするときに
環境変数 APR_ICONV_PATH と 環境変数 PATHの設定に注意が必要。
svn co http://svn.apache.org/repos/asf/subversion/trunk trunkファイアフォール等のために、外部サイトへのアクセスができない場合 以下のように httpsでアクセスするとうまくいくことがあります。
svn co https://svn.apache.org/repos/asf/subversion/trunk trunk
db-4.4.20 │ ├─build_win32 │ │ │ ├─Berkeley_DB.dsw │ ├─build_all.dsp │ │ ... (中略) ... │ ├─db.h │ └─db_cxx.h │ ... 以下略 ...
db4-win32\ │ ├─bin │ │ │ ├─db_archive.exe │ ├─db_checkpoint.exe │ │ ... (中略) ... │ ├─excxx_txnguide_inmem.exe │ ├─libdb44d.dll ← build_win32\Debug からコピーする │ └─libdb44.dll ← build_win32\Release からコピーする │ ├─include │ │ │ ├─db.h ← build_win32 からコピーする(同じ名前のファイルが複数ある) │ └─db_cxx.h ← build_win32 からコピーする │ └─lib │ ├─libdb44.exp ├─libdb44d.exp ├─libdb44sd.lib ← build_win32\Debug からコピーする ├─libdb44d.lib ← build_win32\Debug からコピーする ├─libdb44.lib ← build_win32\Release からコピーする └─libdb44s.lib ← build_win32\Release からコピーする
│ ├─common │ │ │ ├─db4-win32 ← さきほど作成したディレクトリ │ ├─httpd-2.0.59 │ └─zlib-1.2.3 │ └─trunk (subversion のソースコード) │ ├─INSTALL │ ... (中略) ... └─gen-make.py
D:\svnwork\VS2008\common\httpd-2.2.4>perl cvtdsp.pl -2008 Converted project httpd.dsp to 2008 in . Converted project libhttpd.dsp to 2008 in . Converted project mod_access_compat.dsp to 2008 in ./modules/aaa Converted project mod_authnz_ldap.dsp to 2008 in ./modules/aaa 中略 Converted project rotatelogs.dsp to 2008 in ./support Converted project wintty.dsp to 2008 in ./support/win32
複数行にわけて書けるように行末にハットを使っています。 参考
c:\...\trunk> python gen-make.py -t vcproj --vsnet-version=2008 ^ --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
r22841 以降のバージョンではデフォルトで subversion のライブラリを 独立した DLL としてコンパイルするようになっています。 もし static ライブラリとしてコンパイルするためにはプロジェクトファイル 作成時に、--disable-shared をつけて実行してください。
C:\...\trunk> python gen-make.py -t vcproj --vsnet-version=2008 ^ --with-berkeley-db=..\common\db4-win32 ^ --with-zlib=..\common\zlib-1.2.3 ^ --with-httpd=..\common\httpd-2.0.59 ^ --disable-shared
このオプションをつけないでプロジェクトファイルを 作成した場合、実行時に Subversion library の各種DLL を実行ファイルと 同じディレクトリにコピーする必要があります。( libsvn_repos-1.dll 等)
│ ├─libapr-1.dll ( APR 0.9.x の場合 libapr.dll) ├─libapriconv-1.dll (同様に libapriconv.dll ) ├─libaprutil-1.dll (同様に libaprutil.dll ) ├─libdb44.dll ├─svn.exe ├─svnadmin.exe ├─svndumpfilter.exe ├─svnlook.exe ├─svnserve.exe ├─svnsync.exe └─svnversion.exe
│ ├─libapr-1.dll ( APR 0.9.x の場合 libapr.dll) ├─libapriconv-1.dll (同様に libapriconv.dll ) ├─libaprutil-1.dll (同様に libaprutil.dll ) ├─libdb44.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
c:\...\trunk\Release\subversion\svn> svn Type 'svn help' for usage.
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_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
13>------ ビルド開始: プロジェクト: test_compat, 構成: Release Win32 ------ 13>test_compat : warning PRJ0009 : ビルド ログを開いて書き込むことができませんでした。 13>ファイルが別のプロセスによって開かれていないこと、また書込み禁止になっていないことを確認してください。 12>リンクしています... 12>マニフェストを埋め込んでいます... 13>コンパイルしています... 13>compat-test.c 12>ビルドログは "file://d:\svnwork\SVN2008\trunk\Release\subversion\tests\libsvn_subr\BuildLog.htm" に保存されました。 12>test_config - エラー 0、警告 0
19>------ ビルド開始: プロジェクト: test_translate, 構成: Release Win32 ------ 19>test_translate : warning PRJ0009 : ビルド ログを開いて書き込むことができませんでした。 19>ファイルが別のプロセスによって開かれていないこと、また書込み禁止になっていないことを確認してください。 18>コンパイルしています... 18>time-test.c 19>コンパイルしています... 19>translate-test.c 18>リンクしています... 18>マニフェストを埋め込んでいます... 19>リンクしています... 18>ビルドログは "file://d:\svnwork\SVN2008\trunk\Release\subversion\tests\libsvn_subr\BuildLog.htm" に保存されました。 18>test_time - エラー 0、警告 0この警告は、上記のログでもわかるように ビルドログ BuildLog.htm のパスが 複数のプロジェクトで同じになっています。Visual Studio 2008 自体が 開いているためにそれ以降のプロジェクトで書き込みができないためです。
Subversion のバイナリをインストーラでインストール した場合、システムの PATH 環境変数に Subversion の コマンドのパスが指定されている場合があります。 そうすると、subversion のバイナリはこちらの APR をロードするので、バイナリ互換性のない APR が インストールされていると落ちます。
このため PATH 環境変数から別のバージョンの APR を削除するか、インストーラでインストール してバイナリをコンパイルしたファイルで すべて上書きするようにしてください。