hdn:開発環境構築

[トップ][一覧][最近の更新]

hdn



目的 / 前提条件

古いghcの削除

既に古いghcがインストールされている場合は、予めアンインストールしておく。 これは不要かも知れないが、一応念の為に行っておく。

  1. windowsの左下の「スタート」→「設定」→「コントロールパネル」→「プログラムの追加と削除」→「GHC」→「削除」
  2. 「C:\Program Files\Haskell」等にHaskell用追加モジュールがインストールされているので、このディレクトリごと消しておく。
  3. このページの以前の手順でインストールした場合、「F:\ghc」等に*.dll等の外部ライブラリ類がインストールされているので、それも削除しておいても良い(再利用しても正常に動作はする筈)。

ベースシステム

ghc-6.8.2

Haskell用コンパイラ(兼インタプリタ(兼シェル))本体。

  1. http://www.haskell.org/ghc/ → Binary Packages → Windows をもらってくる。
  2. インストーラを実行して適当な場所にインストールする。

darcs-1.0.9

Haskellで作られたリビジョン管理システム。 darcsでしか配布していないパッケージ等を取得したりする為にも使う。

  1. http://darcs.net/ から、「Download」→「Binaries and source of the latest stable release」と進む。
  2. 「Microsoft Windows」のところから、「without Cygwin」の方を貰ってくる(cygwinの入った環境であれば「with Cygwin」を選んでもok)。
  3. 貰ってきたアーカイブを展開し、適当に、設置したい場所に設置する。
  4. http://wiki.darcs.net/DarcsWiki/WindowsConfiguration を見ながら、環境設定を行う。

reimp.exe

モジュールをインストールする際に必要になる(事もある)、*.libファイルから*.defファイルを作成するユーティリティ。

  1. mingw-utilsのパッケージを貰ってくる。
  2. 展開する(lhaplus等の、tar.gzを展開できるユーティリティが必要)。
  3. 中に入っているreimp.exeを、適当に、pathの通った場所に放り込む(c:\windowsとか)。

モジュール

オプションについて

Win32-2.1.0.0

windows.hバインディング。

  1. http://hackage.haskell.org/packages/archive/pkg-list.html → System → Win32
  2. Setup.hsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

SDL

マルチメディアライブラリ。

  1. 前準備として、SDL本体をインストールするディレクトリを決める。
  2. このディレクトリ配下に「bin」「include」「lib」の三つのディレクトリを作成する。
  3. http://www.libsdl.org/ →「Download」→「SDL 1.2」→「Development Libraries」→「Win32」→「Mingw32」→ SDL-devel-*.*.*-mingw32.tar.gz
  4. 中に入っている「bin/SDL.dll」を、設置先の「bin」にコピーする。
  5. 中に入っている「include/SDL/」を、設置先の「include/SDL」になるようにコピーする。
  6. 中に入っている「lib/」内の全ファイルを、設置先の「lib」にコピーする。
  7. http://hackage.haskell.org/packages/archive/pkg-list.html → Graphics → SDL
  8. 同梱のWIN32ファイルに書かれている内容を参考にしつつ、SDL.cabalファイルとSDL.hファイルを書き換える。
    Include-Dirs: F:\ghc\include\SDL
    Extra-Lib-Dirs: F:\ghc\lib
    Extra-Libraries: SDL.dll SDLmain
    
    /* #include "SDL_main.h" */
    
  9. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ... (WIN32ファイルに記述してある通りエラーが出るが、続行してok)
    *Main> :main build
    ...
    *Main> :main install
    

SDL_gfx

ソフトウェアによる、汎用描画ライブラリ。 簡単な図形の描画、拡大縮小回転、初歩的なフレームレート操作、画像フィルタ、のそれぞれの機能が提供される。 ソフトウェア的に実現される為、あまり高速とは言えない(多分)。

  1. http://www.ferzkopp.net/joomla/content/view/19/14/ → Downloads → Latest Version → *.tar.gz
  2. http://hackage.haskell.org/packages/archive/pkg-list.html → Graphics → SDL-gfx
  3. SDL_gfx(本体)の方に入っている*.hファイルを全部、SDL本体をインストールした「include/SDL」内にコピーする。
  4. コピーした*.hを一つずつエディタで開き、以下の部分を全部修正する(コピーする前に修正してもok)
    #ifdef WIN32
    #ifdef BUILD_DLL
    #define DLLINTERFACE __declspec(dllexport)
    #else
    #define DLLINTERFACE __declspec(dllimport)
    #endif
    #else
    #define DLLINTERFACE
    #endif
    ↓
    #define DLLINTERFACE
    
  5. SDL_gfx(本体)の方に入っている*.cファイルを全部、hackageから貰ってきたSDL-gfxの展開ディレクトリの中にコピーする。
  6. SDL-gfx.cabalに以下の行を修正する(pathは各環境に合わせて直す事)。
    Include-Dirs: F:\ghc\include\SDL
    Extra-Lib-Dirs: F:\ghc\lib
    c-sources:
      SDL_framerate.c,
      SDL_gfxBlitFunc.c,
      SDL_gfxPrimitives.c,
      SDL_imageFilter.c,
      SDL_rotozoom.c
    
  7. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

SDL_image

各種の画像フォーマット(pngやjpg等)を扱う為のライブラリ。 標準のSDLだけではbmpしか扱えない。

  1. http://www.libsdl.org/projects/SDL_image/ Binary → Win32 → devel → SDL_image-devel-*.zip
  2. 配布物に入っている「include/SDL_image.h」を、インストール先の「include/SDL」内にコピーする。
  3. 配布物の「lib」に入っている「*.dll」を全部、インストール先の「bin」の中にコピーする。
  4. SDL_image.dllから、libSDL_image.dll.aを生成する。
    1. SDL_image.defを作成する。
      • 配布物の「lib」でコマンドライン(またはsh等)を開き、以下を実行する。
        reimp -d -c SDL_image.lib
        
    2. 更に、以下のコマンドを実行する。
      f:\ghc\ghc-6.8.2\gcc-lib\dlltool -v -d SDL_image.def -D SDL_image.dll -l libSDL_image.dll.a
      
      (path等は各自で修正する事)
  5. 生成されたlibSDL_image.dll.aを、インストール先の「lib」内にコピーする。
  6. http://hackage.haskell.org/packages/archive/pkg-list.html → Graphics → SDL-image から*.tar.gzを貰ってくる。
  7. SDL-image.cabalを編集し、以下を追記する。
    Include-Dirs: F:\ghc\include\SDL
    Extra-Lib-Dirs: F:\ghc\lib
    Extra-Libraries: SDL_image.dll
    
  8. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

SDL_mixer

BGM及び効果音マネージャ機能が提供される。

  1. http://www.libsdl.org/projects/SDL_mixer/ → Binary → Win32 → devel → SDL_mixer-devel-*.zip
  2. 配布物の「include/SDL_mixer.h」を、インストール先の「include/SDL」内にコピーする。
  3. 配布物の「lib」に入っている「*.dll」を全部、インストール先の「bin」の中にコピーする。
  4. SDL_mixer.dllから、libSDL_mixer.dll.aを生成する。
    1. SDL_mixer.defを作成する。
      • 配布物の「lib」でコマンドライン(またはsh等)を開き、以下を実行する。
        reimp -d -c SDL_mixer.lib
        
    2. 更に、以下のコマンドを実行する。
      F:\ghc\ghc-6.8.2\gcc-lib\dlltool -v -d SDL_mixer.def -D SDL_mixer.dll -l libSDL_mixer.dll.a
      
      (path等は各自で修正する事)
  5. 生成されたlibSDL_mixer.dll.aを、インストール先の「lib」内にコピーする。
  6. http://hackage.haskell.org/packages/archive/pkg-list.html → Graphics → SDL-mixer から*.tar.gzを貰ってくる。
  7. SDL-mixer.cabalを編集し、以下を追記する。
    Include-Dirs: F:\ghc\include\SDL
    Extra-Lib-Dirs: F:\ghc\lib
    Extra-Libraries: SDL_mixer.dll
    
  8. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

SDL_ttf

ttfフォントの描画機能が提供される。

  1. http://www.libsdl.org/projects/SDL_ttf/ → Binary → Win32 → devel → SDL_ttf-devel-l*.zip
  2. 配布物の「include/SDL_ttf.h」を、インストール先の「include/SDL」内にコピーする。
  3. 配布物の「lib」に入っている「*.dll」を全部、インストール先の「bin」の中にコピーする。
  4. SDL_ttf.dllから、libSDL_ttf.dll.aを生成する。
    1. SDL_ttf.defを作成する。
      • 配布物の「lib」でコマンドライン(またはsh等)を開き、以下を実行する。
        reimp -d -c SDL_ttf.lib
        
    2. 更に、以下のコマンドを実行する。
      F:\ghc\ghc-6.8.2\gcc-lib\dlltool -v -d SDL_ttf.def -D SDL_ttf.dll -l libSDL_ttf.dll.a
      
      (path等は各自で修正する事)
  5. 生成されたlibSDL_ttf.dll.aを、インストール先の「lib」内にコピーする。
  6. http://hackage.haskell.org/packages/archive/pkg-list.html → Graphics → SDL-ttf から*.tar.gzを貰ってくる。
  7. SDL-ttf.cabalを編集する。
    Include-Dirs: .
    ↓
    Include-Dirs: F:\ghc\include\SDL
    Extra-Lib-Dirs: F:\ghc\lib
    Extra-Libraries: SDL_ttf.dll
    
  8. インストール先の「include/SDL」内に、「Graphics\UI\SDL\TTF」ディレクトリを作り、その中に、配布物内の「Graphics/UI/SDL/TTF/Wrapper.h」をコピーする。
  9. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

utf8-string

文字列をutf8として扱う為のモジュール。Haskell文字列をC文字列に変換する際には、このモジュールを通さないと正しく変換されない問題がある。

  1. http://hackage.haskell.org/packages/archive/pkg-list.html → Codec → utf8-string
  2. Setup.lhsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ...
    *Main> :main install
    

iconv

エンコーディング変換機能が提供される

  1. http://www.kaoriya.net/#LIBICONV から、最新っぽいlibiconvを貰う
  2. 展開する
  3. 配布物の「iconv.h」を、インストール先の「include」内にコピーする。
  4. 配布物の「iconv.dll」を、インストール先の「bin」の中にコピーする。
  5. iconv.defを作成する。
  6. libiconv.dll.aを生成する。
  7. 生成されたlibiconv.dll.aを、インストール先の「lib」内にコピーする。
  8. http://hackage.haskell.org/packages/archive/pkg-list.html → Codec → iconv
  9. iconv.cabalに追記する。
      Include-Dirs: F:\ghc\include
      Extra-Lib-Dirs: F:\ghc\lib
      Extra-Libraries: iconv.dll
    
  10. Setup.hsを起動
    *Main> :main configure -O --enable-split-objs
    ...
    *Main> :main build
    ... (大量にWarningが発生するが、一応生成は完了する。libiconvのバージョンが少し古いのが原因?)
    *Main> :main install
    

問題点

外部リンク

古いメモ


最終更新 : 2008/01/06 08:26:08 JST