特定共有ライブラリに依存した Scheme コードのインストール方法

FFI の機能を提供するようになったので、特定の共有ライブラリに依存した Scheme コードのインストール方法を考えなければならない。
例えば (dbd mysql) というライブラリは libmysqlclient に依存するが

  • ユーザーの環境で libmysqlclient.so がどこにインストールされているか?
  • バージョンは?

などを調べないといけない。


ユーザーに configure 時に入力してもらうのがデフォルトだとあまりにも不親切。
他の言語や処理系を見てみると

  • まずは mysql_config があれば利用する
  • なければ定番 Path /usr/lib, /usr/local などを自前で探す

などとなっています。


これらの作業を configure でやっているものもあれば、Ruby のように extconf.rb でやっているものも。

結局何が必要か?

気付いたのは 2 つ。

  • mosh_config
    • ライブラリのインストール先などの情報を提供
  • 共有ライブラリを探す汎用的な仕組み(おおざっぱでも良い)