NetBSD pkgsrc下でGauche-fastcgiをインストールする場合のメモ。
とりあえずconfigureからmakeしただけだと、ライブラリにリンクが行かない。pkgsrcが/usr/pkg以下にインストールをする関係で、コンパイルフラグを手動で設定しなければならないのはよくある話で、例によってconfigureでパスを設定。
./configure
CPPFLAGS="-I/usr/pkg/lib \
-I/usr/pkg/lib/gauche/0.8.9/i386--netbsdelf/include" \
LDFLAGS="-L/usr/pkg/lib \
-Wl,-rpath,/usr/pkg/lib \
-L/usr/pkg/lib/gauche/0.8.9/i386--netbsdelf \
-Wl,-rpath,/usr/pkg/lib/gauche/0.8.9/i386--netbsdelf"
これでいけるか・・・、と思いきや、いけない。
コンパイルにはGaucheに付属するgauche-packageというコマンドを使っているっぽいんだけど、このコマンドにCPPFLAGSやLDFLAGSを渡すときの挙動がおかしいらしい。ま、クオートされてないだけなんだけど。
というわけで、Makefile.inを修正。
@@ -51,8 +51,8 @@
fastcgi.$(SOEXT): $(fastcgi_SRCS)
$(GAUCHE_PACKAGE) compile --verbose \
- --cppflags="$(CPPFLAGS)" --ldflags="$(LDFLAGS)" \
- --libs="$(LIBS)" fastcgi $(fastcgi_SRCS)
+ --cppflags=$(CPPFLAGS) --ldflags=$(LDFLAGS) \
+ --libs=$(LIBS) fastcgi $(fastcgi_SRCS)
sample.fcgi : sample.fcgi.in
rm -f sample.fcgi
これでめでたくインストールできました。めでたしめでたし。
でも/usr/pkg/lib/gauche/0.8.9/i386--netbsdelfとかパスにバージョン番号が入ってるとそのつど直さなきゃいけないよねえ。こういうのってどうすりゃいいんだ?