...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

セットアップ環境を作ろう

僕は dmd のバージョンを頻繁に変更するので,3つのバッチファイルを作ってある.

注意

  1. これらのバッチファイルは dmd しか取り扱わないが,初めてD言語の処理系をインストールする場合は,dmc もインストールしなければならない.
  2. これらのバッチファイルは,wget と unzip と grep を実行できる環境でないと動作しない(僕は cygwin を入れてある).ただし,grep はインストール後に dmd のバージョンを表示するために使用しているだけなので,不要ならその部分を削除してもいい.
  3. dmd のインストール先を c:\ 以下にしている人が多いと思われるが,僕は好みで c:\d\ 以下にしている.
  4. セットアップの度に dmd\bin\sc.ini および dm\bin\sc.ini を編集するのは面倒なので,上書きインストール時にこれらのファイルが上書きされないように,事前に読み取り専用属性を付加してある.

download.bat

cd c:\d\temp
wget http://ftp.digitalmars.com/dmd.%1.zip

install.bat

cd c:\d\temp
del dmd.zip
copy dmd.%1.zip dmd.zip
unzip dmd.zip
mkdir c:\d\dmd
mkdir c:\d\dm
xcopy /S /E /Y /C c:\d\temp\dmd c:\d\dmd
xcopy /S /E /Y /C c:\d\temp\dm c:\d\dm
rmdir /S /Q c:\d\temp\dmd
rmdir /S /Q c:\d\temp\dm
dmd | grep Comp

update.bat

call download %1
call install %1

使い方

これらすべてのバッチファイルは c:\d\temp に置いてあるとする.

第一に,特定のバージョンをダウンロードしたいときは,そのバージョン番号をパラメータに指定して次を実行する.

>download 1.024

第二に,既にダウンロードしてある zip ファイルを使って 1.x/2.x を切り替えたい場合のように,特定のバージョンをインストールしたいときは,(略)次を実行する.

>install 1.024

第三に,新しい dmd が公開された場合のように,特定のバージョンをダウンロードしてインストールもしたいときは,(略)する.

>update 2.008

バグ修正

しばらくこれらのバッチファイルを使っていたのだが,どうもうまくセットアップされない場合があると思っていたら,xcopy のオプションが足りていなかった.
sc.ini に読み取り専用属性を付加しているので,これを上書きしようとしてエラーになったときに,コピーが途中で止まってしまっていた.
ちゃんとコンパイルできるようにセットアップされる場合もあったので気づくのが遅れてしまったみたい.
改めて xcopy のオプションを調べて,エラーが起こっても途中で中断しないように /C を追加した.

DMD Updater

最新版の dmd をチェックして,新しいバージョンが公開されていたらダウンロードとインストールを実行してくれるソフトウェアが公開されているので,こちらを使う方法もある.
このソフトはちゃんと sc.ini を上書きしないでいてくれる.

今後の課題

インストールした後,phobos を自分用に make するところまで自動化するとより便利かもしれない.
例えば,Windowsflectioned を使う場合には,phobos を -g オプション付きで make しなおさないといけない.