Cygwin、SDL
うまくいかない。
$ runhaskell Setup.lhs configure --extra-include-dirs="D:\cygwin\usr\include\SDL" \ --extra-lib-dirs="D:\cygwin\lib"
http://web.animal-machine.com:8080/blog/2010/04/a-haskell-adventure-in-windows/
ここのコメントのようなエラーが出る。
そもそも
Include-Dirs: C:\SDL-1.2.14\include\SDL Extra-Lib-Dirs: C:\SDL-1.2.14\lib
これがエラーになるので環境がだいぶ違うんだろうか。
バージョンを変えて色々やってたら疲れた…。
http://www.f13g.com/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0/Haskell/HSDL/
ここを見ると、バージョンが少し違うだけでもエラーになることがあるらしい。ややこしい。
http://opage.dontexist.com/memo/index.php?hsSDL%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
ここを見ながら、同じバージョンでやったらいけるかなと思って、いじってたら動いてしまった…。理由は不明。
とりあえずやったことは、SDL-devel-1.2.14-mingw32からSDL-devel-1.2.13-mingw32に変えたこと、SDL.buildinfoの-lmingw32を一度消してみたらbuildが通って、もう一度付け足してみてもbuildが通るようになってた。
gccはcygwinのもので、ghcはHaskell Platformのversion 6.12.1でやった。これも一度6.10や6.8を入れたり消したりしていた。
SDL-0.6.2のExamples/MacOSX/Makefileは
test: wrapper.o SDLWrapper.hs ghc -no-hs-main --make wrapper.o SDLWrapper.hs -o test SDLWrapper_stub.h: SDLWrapper.hs ghc -no-hs-main --make SDLWrapper.hs -c wrapper.o: SDLWrapper_stub.h ghc -no-hs-main `sdl-config --cflags` -Wall wrapper.c -c clean: rm -f *.hi *.o *_stub.c *_stub.h test .PHONY: clean
こんな感じになっていて、sdl-config --cflagsを使っているので/usr/bin/sdl-configを手動で編集した。
prefix=D:\\cygwin\\usr
もう一度やって同じことができるか分からないのが困りどころ。