プロジェクトについて

Tera Term は、オリジナルの Tera Term Pro 2.3 の原作者公認の後継版です。オープンソースで開発されており、UTF-8 表示に対応しています。 また、SSH1 対応モジュール TTSSH を拡張し、SSH2 プロトコルをサポートしています。

最新リリース情報

Tera Term_4 (4.107)2023-10-15 20:30
Tera Term-4 RC (4.107 RC)2023-09-10 19:46
Tera Term_5 (5.0)2023-10-15 20:32
Tera Term-5 RC (5.0 RC)2023-09-10 23:22
Tera Term old archive (4.68)2010-12-07 00:00

最新のプロジェクトアクティビティ

2024-07-15
2024-06-10
2024-05-23

最近の更新 (Recent Changes)

2023-09-10
2023-08-29
2023-08-24
2023-08-11
2023-08-08
2023-08-07

Wikiガイド(Guide)

サイドバー (Side Bar)

バッチ処理内でリビルドされない仕組み

Tera Term のリリースでは、一つの操作でインストーラとポータブル (zip) 版が生成される。

インストーラに含まれるバイナリとポータブル版に含まれるバイナリは、同じソースをそれぞれビルドしたものでなく、完全に同じものになるようにしている。cf. ttssh2-devel 4728, ttssh2-dev 273(ビルドのタイムスタンプでも含まれているのか、ソースを全く変更せずリビルドしたバイナリ同士を比較しても差がある)

ビルドするための操作方法が2つあるが、それぞれリビルドされないためにどうしているか解説する。

Inno Script Studio から作成する場合

  1. PreCompile セクションの指示により、"build.bat rebuild" が実行される
    • "libs/buildall.bat" を実行し、ライブラリがビルドされる(すでにビルドされていればリビルドされない)
    • buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
    • *.sln が "devenv /rebuild release" で実行される(release ターゲット・必ずリビルド
  2. Inno Setup により、ビルドされたバイナリを含むインストーラ exe が生成される
  3. PostCompile セクションの指示により、"makearchive.bat release" が実行される
    • "build.bat release" が実行される
      • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
      • buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
      • *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないのでリビルドされない
    • ファイルをまとめたスナップショットフォルダが作成される

release.bat から作成する場合

  1. "libs/download.cmake" を実行し、ライブラリのソースをダウンロードする
  2. "libs/buildall.bat" を実行し、ライブラリがビルドされる(すでにビルドされていればリビルドされない)
  3. ビルド
    1. RELEASE=1 の場合(svn のチェックアウト元が tags/ 配下の場合)
      • "build.bat rebuild" が実行される
        • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
        • buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
        • *.sln が "devenv /rebuild release" で実行される(release ターゲット・必ずリビルド
      • "makearchive.bat release" が実行される
        • "build.bat release" が実行される
          • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
          • buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
          • *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないのでリビルドされない
        • ファイルをまとめたスナップショットフォルダが作成される
    2. rebuild の場合
      • "build.bat rebuild" が実行される
        • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
        • buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
        • *.sln が "devenv /rebuild release" で実行される(release ターゲット・必ずリビルド
      • "makearchive.bat" が実行される
        • "build.bat" が実行される
          • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
          • buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
          • *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないのでリビルドされない
        • ファイルをまとめたスナップショットフォルダが作成される
    3. それ以外 の場合
      • "makearchive.bat" が実行される
        • "build.bat" が実行される
          • "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
          • buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
          • *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースに変化があればビルドされる
        • ファイルをまとめたスナップショットフォルダが作成される
  4. スナップショットフォルダが zip 圧縮される
  5. Inno Setup により、ビルドされたバイナリを含むインストーラ exe が生成される