2009-06-13
WindowsのGHC 6.10.2でのGLUTバインディングのビルド
6.10になってからか、なぜかGHCにOpenGLが付属しなくなった。
試してみたら(運よく)できたのでメモしておく。
- 必要なもの
- Git(に同梱のMSYSのsh.exe)
- Visual C++ (cl.exe)
- Microsoft Platform SDK (gl.hなどのため)
- GLUTバイナリ (glut.hなどのため)
- GLUTバインディングのソース (http://hackage.haskell.org/package/GLUT のtar.gz)
- OpenGLバインディングのソース (http://hackage.haskell.org/package/OpenGL のtar.gz)
clを使わなくともghcに付属のMinGW gccで出来ればいいと思うのだが、単純に試してもうまくいかなかった。
OpenGLバインディングをビルド
コマンドプロンプトでコンパイルする。
Platform SDKをC:\PROGRA~1\MIC977~1にインストールしたとする。
- c:\program files\git\binにpathを通しておく
- OpenGL.cabalに追記
extra-libraries: opengl32, glu32 extra-lib-dirs: C:\PROGRA~1\MIC977~1\Lib extra-include-dirs: C:\PROGRA~1\MIC977~1\Include
- runghc Setup.hs configure -p
- runghc Setup.hs build
- うまくいけばそれに越したことはない
- buildがうまくいかなければ、include\HsOpenGLConfig.hに追記
- 内容は検索して拾ってきたもの
#define HTYPE_GLBITFIELD Word32 #define HTYPE_GLBOOLEAN Word8 #define HTYPE_GLBYTE Int8 #define HTYPE_GLCLAMPD Double #define HTYPE_GLCLAMPF Float #define HTYPE_GLDOUBLE Double #define HTYPE_GLENUM Word32 #define HTYPE_GLFLOAT Float #define HTYPE_GLINT Int32 #define HTYPE_GLSHORT Int16 #define HTYPE_GLSIZEI Int32 #define HTYPE_GLUBYTE Word8 #define HTYPE_GLUINT Word32 #define HTYPE_GLUSHORT Word16
- runghc Setup.hs install
GLUTバインディングをビルド
GLUTのバイナリはC:\local\glut-3.7.6-binに置いたものとする。
- GLUT.cabalに追記 (行頭の空白含む)
extra-libraries: glut32 extra-lib-dirs: C:\local\glut-3.7.6-bin
- runghc Setup.hs configure -p
- runghc Setup.hs build
- runghc Setup.hs install
うまくいってるか確認
GLUT-2.1.2.1\examples\RedBookにいろいろサンプルがあるのでrunghcしてみる。
コメントを書く
トラックバック - http://haskell.g.hatena.ne.jp/illillli/20090613