クロスコンパイル版 Tcl/Tk for Windows
はじめに
Tcl/Tk は UNIX 系 OS ばかりでなく Winodws や MacOS 上でも利用できる、マルチプラットフォーム対応のスクリプト言語です。C コンパイラがあれば、SourceForge で公開されているソースから Windows 用のバイナリをコンパイルすることができます。Windows 用に利用できるCコンパイラは Microsoft Visual C++、Borland C++ です。また、MinGW の gcc にも対応しています。
ここでは、Tcl/Tk 8.4.1 のコンパイルについて説明します。コンパイル方法が変わらない限り、使用する MinGW 環境や公開しているビットウォーク版ビルドパッケージのバージョンと異なる場合がありますが、適宜バージョン番号の部分を読み換えてください。
作業環境
ここでの説明は以下の環境でおこなうものとします。ただし、Linux には一通りのコンパイル環境が既にインストールされているものとします。
- Red Hat Linux 8.0 (Intel版)
- MinGW用 binutils-mingw-2.13.90-5bw.i386.rpm
- MinGW用 gcc-mingw-3.2-2bw.i386.rpm
- MinGW用 mingw-runtime-2.2-5bw.i386.rpm
- MinGW用 w32api-2.1-5bw.i386.rpm
ソースの入手と展開
Tcl/Tkのソースファイルを作業用のディレクトリへダウンロードします。
ダウンロードしたファイルを展開します。
$ tar zxvf tcl8.4.1-src.tar.gz
:
:
$ tar zxvf tk8.4.1-src.tar.gz
:
:
コンパイル
Tcl
まず Tcl の Windows 用バイナリをコンパイルするディレクトリへ移動します。
$ cd tcl8.4.1/win
MinGW クロスコンパイル用スクリプト
次に、使用するクロスコンパイラなどを指定して configure スクリプトを実行するために、シェルスクリプトを記述したファイル(リスト2)を用意します。なお、/usr/local/bin へはパスが通っている必要があります。
リスト1: mingw.sh
#!/bin/bash
target=i386-mingw32
export AS=${target}-as
export CC=${target}-gcc
export AR=${target}-ar
export RANLIB=${target}-ranlib
export LD=${target}-ld
export DLLTOOL=${target}-dlltool
export RC=${target}-windres
rm -f config.*
configure --prefix=../../Tcl
コンパイル・インストール
次のようにタイプして、コンパイルとインストールを実行します。
$ chmod +x mingw.sh
$ ./mingw.sh
:
:
$ make
:
:
$ make install
:
:
Tk
次に Tk の Windows 用バイナリをコンパイルするディレクトリへ移動します。
$ cd ../../tk8.4.1/win
Tk のコンパイルでも Tcl で使用した mingw.sh と同じ内容のシェルスクリプトを実行してからコンパイルとインストールを実行します。
$ cp ../../tcl8.4.1/win/mingw.sh ./
$ ./mingw.sh
:
:
$ make
:
:
$ make install
:
:
補足
make install の前に次のようにバイナリに対して strip を実行すると、シンボルが削除されてバイナリファイルのサイズが小さくなります。
$ strip *.dll
$ strip *.exe
|