■ 開発環境 - OS Windows XP Professional - コンパイラ Visual Studio 2005 SP1 (Standard Edition 以上) 注: Visual Studio 2008 でコンパイルした実行ファイルは Windows NT 4.0, 98, Me で動きません。 - インストーラ Inno Setup 5.2.3 (http://www.jrsoftware.org/isinfo.php) ISTool 5.2.1 (http://www.istool.org/) Japanese-5-5.1.11.isl (http://www.jrsoftware.org/files/istrans/) - その他 ActivePerl 5.8 以上 OpenSSL のコンパイル、ドキュメントファイルの文字コード・改行コード変換に必要です。 ■ ライブラリ - oniguruma 5.9.1 (http://www.geocities.jp/kosako3/oniguruma/) - openssl 0.9.8h (http://www.openssl.org/) - zlib 1.2.3 (http://www.zlib.net/) - PuTTY 0.60 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) ■ CVSに関する注意点 - リポジトリの改行コードはLFです。 WinCVSで改行コードの設定を間違えると、リポジトリの改行コードが壊れます。 WinCVSでは、「Checkout text file with the Unix LF (0xa)」のチェックを外しておきます。 - コミットログに日本語を含める場合はShift_JISを使ってください。 WinCVSごった煮では、デフォルトがEUCになっています。 「管理」−「設定」で、ごった煮(日本語問題)タブで、「WinCVSが更新ログを日本語EUCに…」のチェックを外しておきます。 - ファイルを別のディレクトリで編集しないでください。 コミットしたときに別の人の修正を削除してしまうことがあります。 - アップデート・コミット時の注意 cvsの処理が失敗することがあるので、ファイルをエディタ等で開いたままで行わないでください。 ■ メニューID追加時の命名規則 1桁目は 5 2桁目は Tera Term VT ウィンドウなら 0 Tera Term TEK ウィンドウなら 1 TTSSH なら 2 TTProxy なら 3 TTXKanjiMenu なら 4 3桁目は [File] メニューなら 1 [Edit] メニューなら 2 [Setup] メニューなら 3 [Control] メニューなら 4 [Window] メニューなら 8 [Help] メニューなら 9 例:File配下にTTSSHのメニューを追加する #define ID_SSHSCPMENU 52110 ■ マクロコマンド追加時の作業リスト Tera Termマクロを新設するときの作業手順について、以下に示します。 1.ソースコードの修正 -- コマンドの内部 ID を採番する(「内部 ID」は"helpid.h"にも使用される) ... teraterm/ttmacro/ttmparse.h -- コマンド名を走査して内部 ID に変換する ... CheckReservedWord@teraterm/ttmacro/ttmparse.c -- コマンドの内部 ID から実際に処理をする関数を呼ぶ ... ExecCmnd@teraterm/ttmacro/ttl.c -- 処理する関数を作る 2. ヘルプ(言語ごと) -- コマンドのヘルプを作る ... doc/LANG/html/macro/command/hogefunc.html -- コマンド一覧ページに追加する ... doc/LANG/html/macro/command/index.html -- ヘルプトピックに追加する ... doc/LANG/teraterm.hhc -- ヘルプページのコンテキスト ID を採番する 値は コマンドの内部 ID + 92000 ... teraterm/common/helpid.h -- コンテキスト ID と呼び出すファイルのエイリアスを作成する ... doc/LANG/teraterm.hhp ■ Tera Termのビルド方法 Tera Termのビルド方法について以下に示します。 ビルドにはVisual Studio 2005 Standard Edition以上が必要です(Visual Studio 2005 Express Editionは不可)。 1. ソースコードをSourceForge(http://sourceforge.jp/projects/ttssh2/)からチェックアウトする。 2. Onigurumaのソースコード(http://www.geocities.jp/kosako3/oniguruma/)を teraterm\source\oniguruma ディレクトリに展開する。 - 自動で行う場合 スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。 コマンドプロンプト上から teraterm\source ディレクトリに移動する。 buildoniguruma.bat を実行する。 - 手動で行う場合 スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。 コマンドプロンプト上から teraterm\source\oniguruma ディレクトリに移動する。 コマンドプロンプトから以下の入力を行い、Onigurumaをビルドする(onig_s.libがリンクされる)。 (1) copy win32\Makefile Makefile (2) copy win32\config.h config.h (3) Makefile をエディタで開いて、CFLAGS の行に /MT を追加する (4) copy Makefile Makefile.debug (5) Makefile.debug をエディタで開いて、CFLAGS の行の /MT を /MTd に変更する また、libname を debug\$(libbase)_s.lib に変更する (6) mkdir debug (7) nmake -f Makefile.debug (8) nmake clean (9) nmake 3. teraterm\visualc\ttermpro.sln をVisual Studioで開く。 .slnファイルの改行コードが"LF"になっていると、Visual Studioが起動しないので注意願います。 4. ソリューションをビルドする 5. ビルドに成功するとteraterm ディレクトリに実行プログラムが生成される ■ TeraTerm Menuのビルド方法 1. ソースコードをSourceForge(http://sourceforge.jp/projects/ttssh2/)からチェックアウトする 2. ttpmenu\ttpmenu.sln をVisual Studioで開く 3. ソリューションをビルドする 4. ビルドに成功すると ttpmenu ディレクトリに ttpmenu.exe が生成される ■ TTXKanjiMenuのビルド方法 1. ソースコードをSourceForge(http://sourceforge.jp/projects/ttssh2/)からチェックアウトする 2. TTXKanjiMenu\ttxkanjimenu.sln をVisual Studioで開く 3. ソリューションをビルドする 4. ビルドに成功すると TTXKanjiMenu ディレクトリに ttxkanjimenu.dll が生成される ■ TTProxyのビルド方法 TTProxyのビルド方法について以下に示します。 ビルドにはVisual Studio 2005(VC++8.0)が必要です。 1. ソースコードをSourceForge(http://sourceforge.jp/projects/ttssh2/)からチェックアウトする 2. TTProxy\TTProxy.sln をVisual Studioで開く 3. ソリューションをビルドする 4. ビルドに成功すると TTProxy ディレクトリにDLLが生成される ■ TTSSHのビルド方法 TTSSHのビルド方法について以下に示します。 ビルドにはVisual Studio 2005(VC++8.0)、ActivePerlが必要です。 * TTSSH単体のビルドは VS2005 Express Edition でも可能です。ttpcmn.libをリンクするため、Tera Termのビルドを事前に行っておく必要があります。VS2005 Express EditionではTera Termのビルドはできませんが、ttpcmn.libは作成することができます。 * VS2008 Express Editionでビルドすると、.rcファイルで下記のエラーが発生します。 .\ttxssh.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'. 本現象を回避するには、.rcファイルをテキストエディタで開き、afxres.hのincludeを削除し、新規に2行を追加します。 - #include "afxres.h" + #include + #define IDC_STATIC -1 1. ソースコードをSourceForge(http://sourceforge.jp/projects/ttssh2/)からチェックアウトする。 2. zlibのソースコード(http://www.zlib.net/)を ttssh2\zlib ディレクトリに展開する。 Release では zlib\projects\visualc6\Win32_LIB_Release\zlib.lib がリンクされることになる(コンパイルオプションに /MT が指定されていること)。 Debug では zlib\projects\visualc6\Win32_LIB_Release\zlibd.lib がリンクされることになる(コンパイルオプションに /MTd が指定されていること)。 3. OpenSSLのソースコード(http://www.openssl.org/)を ttssh2\openssl ディレクトリに展開する。OpenSSLをビルドする(以下参照)。 Release では openssl\out32\libeay32.lib が、Debug では openssl\out32.dbg\libeay32.lib がリンクされることになる。 - 自動で行う場合 + スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。 + コマンドプロンプト上から ttssh2 ディレクトリに移動する。 + buildopenssl.bat を実行する。 - 手動で行う場合 + スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。 + cd openssl + perl Configure VC-WIN32 (そうです、OpenSSLをビルドするにはperlが必要です!) + ms\do_ms.bat をエディタで開いて、ms\nt.mak の次の行に下記の内容を追記する perl util\mk1mf.pl no-asm debug VC-WIN32 >ms\ntd.mak + ms\do_ms + ms\nt.mak をエディタで開いて、CFLAG行の /MD を /MT に変更する + ms\ntd.mak をエディタで開いて、CFLAG行の /MDd を /MTd に変更する + nmake -f ms\nt.mak + nmake -f ms\ntd.mak + cd .. (ttssh2フォルダに戻ります。) 詳細については、OpenSSLのドキュメントを参照してください。 4. PuTTYのソースコード(http://www.chiark.greenend.org.uk/~sgtatham/putty/)を ttssh2\putty ディレクトリに展開する。 5. ttssh2\ttssh.sln をVisual Studioで開く 6. ソリューションをビルドする 7. ビルドに成功するとttssh2\ttxssh ディレクトリにDLLが生成される ■ CygTermのビルド方法 CygTermのビルド方法について以下に示します。 1. Cygwin(http://www.cygwin.com/)をインストールする 2. Cygwinのシェルを起動し、cygterm ディレクトリへ移動する。 # cd cygterm 3. CygTermをコンパイルする # make ■ ヘルプファイルのビルド方法 ヘルプファイルのビルド方法について以下に示します。 1. HTML Help Workshopを以下のサイトから入手しインストールする。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp 2. コマンドプロンプトからバッチファイルを起動し、必要なファイルをコピーする。 > cd teraterm\insatller > convtext.bat 3. FileのOpenから doc\en\teraterm.hhp および doc\jp\teratermj.hhp を開く 4. FileのCompileでヘルプファイルをコンパイルする ■ リリースの方法 リリースの方法について以下に示します。 1. 依存ライブラリ、ツール、インポート元の最新版をチェックする。 Visual Studio http://www.microsoft.com/japan/msdn/vstudio/downloads/default.aspx Inno Setup http://www.jrsoftware.org/isdl.php http://www.jrsoftware.org/files/istrans/ Oniguruma http://www.geocities.jp/kosako3/oniguruma/ OpenSSL http://www.openssl.org/ zlib http://www.zlib.net/ PuTTY http://www.chiark.greenend.org.uk/~sgtatham/putty/ CygTerm http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/ LogMeTT http://www.neocom.ca/forum/viewforum.php?f=5 2. バージョンを上げ、日付を変更する リリース作業時に、バージョンを一つインクリメントする。 リリースされる前にバージョン番号が上がったファイルが出回るのを避けるため。 バグレポートなどで混乱の元になりそうなので、リリースまではバージョン番号を上げないこと。 - ttermpro.rc - ttxssh.rc - ttmacro.rc // 変更時のみ - ttpmenu.rc // 変更時のみ - TTProxy.rc // 変更時のみ - ttxkanjimenu.rc // 変更時のみ - teraterm.iss - html/about/hisotry.html CygTerm+ は例外で、リリースとは関係なくバージョンが上がる。 パッチがコミットされると即リリース扱いになり、リリース日はその日付となる。 これは、バージョンの末尾が patchlevel であり、コンパイラの入手が容易なため。 3. 動作確認をする プログラムをコンパイルし直す インストーラを作成する ISTool で teraterm\installer\teraterm.iss を開き、[Project]-[Compile Setup]で作成される インストールおよび実行をテストする 4. cvs のタグをつける。タグ名は「Rバージョン_RTM」。たとえば、v4.56ならば"R456_RTM"。 5. SourceForge.jp を更新する [リリースファイル]-[リリースファイル/変更]-[新規作成] 英語の変更履歴を入力してリリースを作成する ログインしていなくても変更履歴が表示されることを確認する [リリースファイル]-[変更履歴]-[翻訳] 言語がJapaneseになっていることを確認し、日本語の変更履歴を入力する 6. プロジェクトページを更新する 7. メーリングリストにアナウンスする 8. フォーラムに告知する (1) Announcements http://www.neocom.ca/forum/viewforum.php?f=5 Announcements に新規投稿する。種類は Announcement 一つ前の Announcement の種類を Normal に変更する Announcement は三個残すことになっているので、三つ前の Announcement を削除する (2) Tera Term Changelog http://www.neocom.ca/forum/viewtopic.php?t=3 今回の変更を追加する (3) TTSSH Changelog http://www.neocom.ca/forum/viewtopic.php?t=29 今回の変更を追加する 9. スナップショットを削除する