Tera Term Project でリリースに使用しているコンパイラは以下の通りです。
ビルドに必要なツールは以下の通りです。
Tera Term をビルドするために上記のツールを新規導入するのではなく、すでにインストール済みのツールを使うこともできます。
installer\release.bat がインストール済みのツールを見つけられない場合は、installer\toolinfo_sample.bat を installer\toolinfo.bat にコピーし、適宜編集してください。
ソースコードをOSDN(http://svn.osdn.net/svnroot/ttssh2/trunk/)からチェックアウトします。
プロジェクトメンバは svn+ssh://<username>@svn.osdn.net/svnroot/ttssh2/trunk/ または https://svn.osdn.net/svnroot/ttssh2/trunk/ からチェックアウトします。
installer\release.bat を実行し、3を選択します。
ソースコードをOSDN(http://svn.osdn.net/svnroot/ttssh2/trunk/)からチェックアウトします。
プロジェクトメンバは svn+ssh://<username>@svn.osdn.net/svnroot/ttssh2/trunk/ または https://svn.osdn.net/svnroot/ttssh2/trunk/ からチェックアウトします。
"x86 Native Tools Command Prompt for VS 2022" を立ち上げるか、適切な PATH を通しておく必要があります。
* の bat を個別に実行するかわりに、libs\buildall.bat を実行することでまとめてビルドすることができます。
リポジトリのTTXSamplesに Tera Term Extension (TTX)のサンプルがあります。TTXを作る際の参考にしてください。
あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。各TTXの詳細については、プロジェクト内のReadMe-ja.txtを参照してください。
# cd cygterm
# make
項目名
すでに EnableFoo... や DisableBar... が混在してしまっているが、混乱しやすい。
今後は Baz... という形式にするのが望ましい。
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マクロを新設するときの作業手順について、以下に示します。
アイコンファイルには、4bit の 32px, 16px 画像、32bit の 256px, 48px, 32px, 16px 画像を含めます。
各アイコンファイルには以下の種類の画像が含まれています。
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\common\teraterm.ico | TTERM (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\common\teraterm_classic.ico | TTERM_CLASSIC | BMP | BMP | - | - | - | - |
| teraterm\common\teraterm_3d.ico | TTERM_3D | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\common\teraterm_flat.ico | TTERM_FLAT | BMP | BMP | PNG | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\common\vt.ico | VT (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\common\vt_classic.ico | VT_CLASSIC | BMP | BMP | - | - | - | - |
| teraterm\common\vt_3d.ico | VT_3D | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\common\vt_flat.ico | VT_FLAT | BMP | BMP | PNG | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\common\tek.ico | TEK | BMP | BMP | - | - | - | - |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\ttpmacro\ttmacro.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\ttpmacro\ttmacro_3d.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\ttpmacro\ttmacro_flat.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\ttpmacro\ttmacrof.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\keycode\keycode.ico | - | BMP | BMP | - | BMP | - | - |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| teraterm\ttpmacro\ttsecure.ico | flat2 (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\ttpmacro\ttsecure_classic.ico | classic | BMP | BMP | - | - | - | - |
| teraterm\ttpmacro\ttsecure_yellow.ico | yellow | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\ttpmacro\ttsecure_green.ico | green | BMP | BMP | PNG | BMP | BMP | BMP |
| teraterm\ttpmacro\ttsecure_flat.ico | flat | BMP | BMP | PNG | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| ttpmenu\teraterm.ico | - | BMP | BMP | - | BMP | BMP | BMP |
| icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
|---|---|---|---|---|---|---|---|
| cygwin\cygterm\cygterm.ico | CYGTERM | BMP | BMP | - | BMP | BMP | BMP |
アイコンファイルへの画像の格納順は「ビット数が小さい順、サイズが大きい順」とします。
そうでないと、プログラムがサイズを指定せずに「最大サイズの画像」を取得しようとしたときに「最初の画像」が取り出されるためです。
アイコンファイルには 4bit 画像を含めます。
Windows NT 4.0 は 4bit アイコンのみサポートしているためです。また、Windows 2000 の通知領域も 4bit アイコンのみサポートしています。
4bit アイコンには以下の色が使用できます。
| #000000 | (0,0,0) | |
| #800000 | (128,0,0) | |
| #ff0000 | (255,0,0) | |
| #ff00ff | (255,0,255) | |
| #008080 | (0,128,128) | |
| #008000 | (0,128,0) | |
| #00ff00 | (0,255,0) | |
| #00ffff | (0,255,255) | |
| #000080 | (0,0,128) | |
| #800080 | (128,0,128) | |
| #0000ff | (0,0,255) | |
| #c0c0c0 | (192,192,192) | |
| #808080 | (128,128,128) | |
| #808000 | (128,128,0) | |
| #ffff00 | (255,255,0) | |
| #ffffff | 255,255,255 |
アイコン用画像のソースファイルは以下に格納されています。
| source file | bit | T | VT | Macro | SSH | Cygwin |
|---|---|---|---|---|---|---|
| teraterm\common\flat_icon_16.psd | 4bit | v | v | v | v | v |
| 32bit | v | v | v | v | v | |
| teraterm\common\flat_icon_32.psd | 4bit | v | v | v | v | v |
| 32bit | v | v | v | v | v | |
| teraterm\common\flat_icon_48.psd | 32bit | v | v | v | v | v |
| teraterm\common\flat_icon_256.psd | 32bit | v | v | v | v | - |
| source file | bit | Keycode |
|---|---|---|
| teraterm\common\keycode_48.psd | 4bit | v |
| source file | bit | T | VT | Macro | Macro File | SSH | Cygwin |
|---|---|---|---|---|---|---|---|
| teraterm\common\flat2_icon_16.psd | 4bit | v | v | v | v | v | v |
| 32bit | v | v | v | v | v | v | |
| teraterm\common\flat2_icon_32.psd | 4bit | v | v | v | v | v | v |
| 32bit | v | v | v | v | v | v | |
| teraterm\common\flat2_icon_48.psd | 32bit | v | v | v | v | v | v |
| teraterm\common\flat2_icon_256.psd | 32bit | v | v | v | v | v | - |
TeraTerm Project でのリリース手順について以下に示します。
リリースに使うバージョンはこの時点でおおむね決定する。
一般にテストを呼びかけ、旧バージョンとの同時実行が考えられるため、このタイミングとする。
CygTerm+ は例外で、リリースとは関係なくバージョンが上がる。
修正がコミットされると即リリース扱いになり、リリース日はその日付となる。そのため、修正・バージョンのインクリメント・変更履歴を同時にコミットする。
これはコンパイラの入手が容易なため。
前回のリリースから CygTerm+ に変更がある場合は、64bit Cygwinでビルドした cygterm\cygterm+-x86_64\cygterm.exe をコミットする。
ソース修正をコミットするときに、同時にバイナリがコミットされていれば、リリース時にこの工程を行う必要はない。
- #define AppVer "4.105"
+ #define AppVer "4.106-RC1"
- #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
+ ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
[PreCompile]
Name: makechm.bat
- Name: build.bat
- ;Name: build.bat; Parameters: rebuild
+ ;Name: build.bat
+ Name: build.bat; Parameters: rebuild
[PostCompile]
- ;Name: makearchive.bat; Parameters: release
+ Name: makearchive.bat; Parameters: release
修正が入ったら再度「ドキュメントを確認する」「サポートされている全 OS で起動・接続チェックする」
- #define AppVer "4.106-RC1"
+ #define AppVer "4.106"
svn copy -m "Release 4.106" \
svn+ssh://svn.osdn.net/svnroot/ttssh2/branches/4-stable \
svn+ssh://svn.osdn.net/svnroot/ttssh2/tags/teraterm-4_106
SVN のリビジョン以外のすべてが、開発ブランチと同じ状態になる
更新のしかたは プロジェクトページの更新手順 を参照
- ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
+ #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
[PreCompile]
Name: makechm.bat
- ;Name: build.bat
- Name: build.bat; Parameters: rebuild
+ Name: build.bat
+ ;Name: build.bat; Parameters: rebuild
[PostCompile]
- Name: makearchive.bat; Parameters: release
+ ;Name: makearchive.bat; Parameters: release
コードフリース中は、原則的には致命的なバグの修正のみ可能となります。
コードフリーズは、RC作成(開発ブランチ で teraterm.iss に RC を付けるコミット)からリリース(開発ブランチの teraterm.iss を戻すコミット)までとします。