MSYS/MinGW用のcygtermをビルドしてみた

MSYSのrxvtはパッチ当てないと日本語環境ではまともに使えないので、下記を参考にcygtermをビルドしてみた。

2007年11月当時のcygtermのソースからすると、現状のcygterm+はだいぶ機能拡張されているので、下記のSubVersionリポジトリから取ってきたソースコードでは、MSYS開発環境ではビルドできない。

strlcpy()とmkdtemp()がMSYS環境に無いからビルドできないが、前者はXFree86から頂いてきた。後者はssh関連の処理で使っていたから、MSYSではsshは使わないだろうとその辺のルートをばっさりコメントアウト
MinGWgcc-4.4.0ではコンパイルできないから、Makefileに明示的に

CC = /bin/gcc

と書いて、MSYS開発環境のヘッダファイルを見てくれるgcc-2.95.3-1を使わないといけない。*1

ついでに、source file & executableのファイル名を変えて、アイコンも作り直してみた。投げやりHackの成果はこちら↓

ちなみにcygtermにアイコンつけて、version numberに勝手に3オクテット(?)目を付けたのは私ですw(cygterm+のREADME-jより)

v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp)
        * CygTermのアイコンが作成されました。("DotWork 2.50"にて作成)
          "DotWork 2.50" は右記のURLより入手可能です。
          http://www5a.biglobe.ne.jp/~suuta/
          すばらしいソフトウェアを公開していただき、
          "suuta at hamal dot freemal dot ne dot jp"に感謝致します。

        * Makefile が修正されました。"clean" ターゲットで cygterm.ico を削除
          しないように。

v1.06_01 2006/02/08 (by babydamons@yahoo.co.jp)
        * 以下の設定ファイルの読み込みをサポート:
            + /etc/cygterm.conf
            + ~/.cygtermrc

        * シェルがユーザのホームディレクトリで起動されるように。

        * アカウントの設定情報を /etc/passwd から getpwnam(3) で読み込むように。
          アカウント名は環境変数 USERNAME からgetenv(3) で取得してます。

        * Makefile 修正:ディフォルトでアイコンつきの .exe をビルドします。

前回はDotWorkでアイコン作りましたが、今回はgimpで作りました。

まともに使える代物になっていたら、cygtermとmsystermが同一ソースコードからビルドできるように整理して、sourceforge.jpTera Termプロジェクトの仲間に入れてもらってcommitしようと思ったが、msystermから開いたTera TermがMSYS環境からコンソールに見えてないので使い物にならない。当然vimも使えない。

結局、こちらのckwを使ってます。MSYS & ckwは特に問題なく動いてる模様。

最近、rubyやらffmpegやらMinGWでビルドして遊んでますが、高専時代にmuleとかtcshとかSunOS4でコンパイルしてたころを思い出してちょっと懐かしい&楽しいですw

*1:環境変数PATHを変更してMinGWgccが見えなくなるようにしてもいいんだけどめんどくさいので。