XLISP-STAT を Windows でコンパイルする方法 [Lisp]
XLISP-STAT を Windows でコンパイルする場合の注意点。単なる備忘です。
コンパイラには Borland C++ 5.5 を使います。ソースは [1] の xlispstat-3-52-20.tar.gz をダウンロードして入手します。最初からバイナリがほしければその下の mswin ディレクトリにコンパイル済みバイナリ(WXLS32ZP.EXE が32ビット版)があります。
このソースを適当な場所に解凍して中の msdos ディレクトリまで降りて makefile の BCDIR を bcc のルートディレクトリに書き換えて make を実行するというのが基本的な手順ですが、2箇所はまりどころがありました。
1. リソースファイルのデコード
アイコンやカーソルなどのリソースファイルはそのままの形ではなく .uu という拡張子で icons ディレクトリや cursors ディレクトリに存在しています。これは uuencode 形式なのでデコードしてやる必要がありますが、ただ make してもやってくれません。Windows には uudecode は付いていないので以下のような Tcl スクリプトを書いてデコードしました。
package require uuencode
set uu [::uuencode::uudecode -file [lindex $argv 0]]
set fn [lindex [lindex $uu 0] 0]
set bin [lindex [lindex $uu 0] 2]
set f [open $fn w]
fconfigure $f -encoding binary
puts -nonewline $f $bin
close $f
2. コンパイルオプションの一部変更
そのままの makefile でビルドすると最後の最後で以下のように言われてしまいます。
Error: 外部シンボル '_errno' が未解決(D:\XLISPSTAT-3-52-20\MSDOS\XLFIO.OBJ が参照)
これは makefile 内の CFLAGS の -W を -WM に変えると通るようになります。
[1] ftp://ftp.stat.umn.edu/pub/xlispstat/current/
コメント 0