VC++2008でECLのmake
金曜日, 10月 3rd, 2008ページの最後の方にmakeの一連の流れを書いてあります。
さっさとWindowsへのECLの入れ方を見たい人はそちらをどうぞ。
WindowsのDLLをCLを使って書きたいため、
CのソースにCLのソースを埋め込もうと思い、
ECLを試してみることにしました。
HDDをあさってみたら、以前ダウンロードした「ecl-0.9j.tgz」というファイルがあったので(*)、
まずそれを展開。若干古そうな気がしたのでcvs updateをかけておきました。
cygwin上でmakeしようとしたんですが、上手くいかなかったので放置していたという恥ずかしいものです(笑)
そして、Visual C++ 2008 Express Editionをダウンロード。
しかし、「Visual Studio 2008 コマンドライン」(*)を起動しようとすると、
「使い方が間違っています」
という悲しいエラーが出てきました。
環境変数を設定するバッチファイル(vsvars32.bat)を覗いてみると、
怪しげな命令があったので、適当に書き直したらちゃんと動きました。
Microsoftどうなってるんだ… Vista用の命令?
(※)インクルードパスなどの環境変数を設定してコマンドラインを立ち上げるもの
それで、ECLのマニュアルに従い、nmakeすると、何故かエラーが発生。
場当たり的に修正しながら突き進んでみたものの、途中で完全に行き詰まりました。
ここで、一旦諦めかけたんですが、もしかしてと思い、
ecl-9.0j.tgzを展開しなおして、cvs updateなど余計なことをせずにmakeしてみると成功。
なんとも悲しいオチが待っていました。
SourceForgeの方に新しいバージョンのアーカイブが無いか確認しに行くと、
ecl-0.9l.tgzというものがあったので、これをダウンロードしてmake。一発で成功しました。
恐らくこっちの方が新しいと思うのでこれを使うことに。
> ecl ECL (Embeddable Common-Lisp) 0.9i (CVS 2008-06-19 17:09) Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2000 Juan J. Garcia-Ripoll ECL is free software, and you are welcome to redistribute it under certain conditions; see file 'Copyright' for details. Type :h for Help. Top level. > (car '(a b c)) A >
疲れたので今日はここまで。
起動時に「0.9i」と出てるのが少々気になるけど、あえて気にしないことに。
* Windows XP上でのECLのmake方法まとめ *
1. Visual C++ 2008 Express Editionをダウンロード及びインストール
2. C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.batを以下のように変更
* 変更前 * call :GetWindowsSdkDir if not "%WindowsSdkDir%" == "" ( set "PATH=%WindowsSdkDir%bin;%PATH%" set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%" set "LIB=%WindowsSdkDir%lib;%LIB%" ) * 変更後 * rem call :GetWindowsSdkDir set WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\ rem if not "%WindowsSdkDir%" == "" ( set "PATH=%WindowsSdkDir%bin;%PATH%" set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%" set "LIB=%WindowsSdkDir%lib;%LIB%" rem )
3. ECLのアーカイブをダウンロード及び展開
4. スタートメニューから「Visual Studio 2008 コマンドライン」を起動。以下のコマンドを入力
cd (ECLの展開先)\msvc nmak nmake install prefix=(インストール先(ディレクトリは勝手には作られません))
当然のことながらファイルパス等は適宜修正してください。
自分のPCでしか試していないので、他のWindows XP環境で上手くいくかは不明です。
というか、VC++のバッチファイルは普通に考えたら触らなくてよさそうなんだけど…