電信八号の開発に参加したいかたは、まず電信八号のパッケージに同梱されている develop.txt を参照してください。
ビルド環境
電信八号の最新公式ビルド環境は、次のとおりです。
- Microsoft® Visual C++® 6.0 (Microsoft® Visual Studio® 6.0) Enterprise Edition or Professional Edition
- Product Updates
- Service Pack 6
- Platform SDK FEB2003
- 現在、Microsoft社のダウンロードサイトからダウンロードページが無くなりました。正式な入手方法は、DVDディスクでのオーダー です。ダウンロードしたい場合は、このあたりから捜してください。
追加ライブラリ
- OpenSSL cryptgraphy and SSL/TLS toolkit
- OpenSSL org - 本家。ソースのみ。
- Win32 OpenSSL - by Shining Light Productions。 Win32ランタイムDLL及び開発用キットのインストーラーあり。
- 電八公式サイトのFTPにもあります。
その他ビルド可能な環境
Microsoft® Visual C++®
MFCを使用しているのでStandard版以上である必要があります。
Microsoft® Visual C++®2010 (VC++10.0)
ビルド出来ます。
注意点
- 「for ループスコープの強制準拠」を「いいえ」にする
- プリプロセッサの定義に
_USE_32BIT_TIME_Tを追加する - 追加のマニフェストに
Denshin8.manifestを追加する。実行時には生成されたDenshin8.exe.manifestファイル必須。
Microsoft® Visual C++®2008 (VC++9.0)
次の環境でビルド可能なことが確認されています。
- Visual Studio® 2008 Service Pack 1
- Visual Studio® 2008 Service Pack 1 ATL セキュリティ更新プログラム
- Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
Microsoft® Visual C++®.NET 2005 (VC++8.0)
ビルドできると思われます。
- 注意点はVC++9.0と同じです。
Microsoft® Visual C++®.NET 2003 (VC++7.1)
ビルドできると思われます。
Microsoft® Visual C++®.NET 2002 (VC++7.0)
ビルドできると思われます。
Intel®C++ Compiler
Windows版でビルドできると思われます。(VC必須)
※Microsoft® Visual C++® 5.0 では恐らくビルドできません。
※ Borland C++, C++ Builder, Code Warrior, GCC, MPW 等でビルドできるようにする試みは、もちろん歓迎します。
PlatformSDK FEB2003のインストールについて
- タイトルがWindows Server 2003 PSDK Full Download with Local Install となっていますが、Windows95 以降 Windows Server 2008 までに対応したものです。間違いではありません。
- Setup.exeはIEを起動します。要するにWEB Updateをローカルで動かすので、デフォルトブラウザがIEでない人はIEでdefault.htmlを直接開く必要があります。
- Platform SDKをインストールした後、VCの[ツール(T)]-[オプション]の[ディレクトリ]タブで、「インクルード ファイル」および「ライブラリ ファイル」の設定が必要です。インストールしたPlatformSDKのパスが追加されているはずですので、一番上に移動するだけです。VC6付属、または他のバージョンのPSDKを使用する必要がある場合は、同じように順番を変えるだけで対応できます。 [下図参照]
- 残念ながらx64版Windowsではインストーラーが動作しません。
OpenSSLについて
- 開発キットを展開し、開発キットのincludeディレクトリをVC++のIDEインクルードファイルディレクトリに追加して下さい。(前記参照)
- DLLを動的ロードしているので、ライブラリファイルのリンクは行いません。
ビルド環境OSについて
- WindowsXP上でビルドする場合、link.exe.manifestとVC6付属のmsvcrt.dllをlink.exeと同じディレクトリに置いてビルドしないと、バイナリが公式ビルドと一致しません(動作は問題有りません)。link.exe.manifestはftpサーバにあります[thanks to YoxoY]。
参考: Windows XP で分離アプリケーションと Side-by-Side アセンブリをビルドし、サービスを提供する方法 - WindowsXPではDLLの検索をプログラムファイルが有る場所よりもシステムディレクトリを優先して行いますので、mscvrt.dllを一緒に置くだけではダメです。レジストリを変更することによってこの検索順を変更することでも出来ますが、お勧めしません。
ビルド手順(まとめ)
環境構築からビルドまでの手順を以下にまとめます。
- VC++6.0 をインストール
- VC++6.0 sp6 をインストール
- Microsoft Platform SDK FEB 2003 をインストール
- 電八に同梱のmsvcrt.dllをVC++6.0のBinディレクトリにコピー
標準的には C:¥Program Files¥Microsoft Visual Studio¥VC98¥Bin - 電八サイトftp ftp://den8dev@denshin8.jp/uploads/ にある link.exe.manifest を同じくVC++6.0のBinディレクトリにコピー
- OpenSSLのビルド
※電八のビルド自体はOpenSSLの開発キットのインストールのみで可能です。- nasm 2.09.04 をインストールし、PATHを通す。
http://www.nasm.us/pub/nasm/releasebuilds/2.09.04/
- nasm 2.09.04 をインストールし、PATHを通す。
- OpenSSLソースを展開
- コマンドプロンプトを起動し、OpenSSLソースを展開したディレクトリに移動
- VC++6.0のBinディレクトリにある、VCVARS32.BAT を実行
- 環境変数includeにPlatformSDKインクルードディレクトリ追加
例: >set Include=C:¥Progra‾1¥Microsoft Platform SDK¥Include;%Include% - 環境変数libにライブラリディレクトリ追加
例: >set Lib=C:¥Progra‾1¥Microsoft Platform SDK¥Lib;%Lib% - パスにPlatform SDKのBinディレクトリを追加
例: >set Path=C:¥Progra‾1¥Microsoft Platform SDK¥Bin;%Path%
※環境変数の追加はVCVARS32.batを元にカスタム化したパッチファイルを作成しておくと良いでしょう。 - ビルド
>perl Configure VC-WIN32
>ms¥do_nasm
>nmake -f ms¥ntdll.mak - インストール
>nmake -f ms¥ntdll.mak Install - VC++6.0の[ツール(T)]-[オプション]の[ディレクトリ]タブで、
- 「インクルード ファイル」の先頭にインストールしたOpenSSLの includeディレクトリを追加。
- 「ライブラリ ファイル」の先頭にインストールしたOpenSSLのlibディレクトリを追加。
- VC++6.0でden8.dsw を開き、denshin8.exeをビルド
- VC++6.0でalias.dswを開き、alias.exeをビルド
電八公式ページに戻る