2010-11-13 [長年日記]
_ [プログラミング] extconf.rb でライブラリのバージョンをチェック
Ruby の拡張ライブラリを作るときに、使用するライブラリのバージョンをチェックしたい。具体的には mpfr がインストールされているかどうかをチェックしてマクロ MPFR_VERSION_MAJOR の値が 3 以上であることを確認するのが目的。have_macro を使って次のようにした。もっとうまい方法があるかもしれないが、情報が少なく、見つからなかった。
require 'mkmf' $CFLAGS += " -Wall" REQUIRE_VERSION = 3 dir_config("mpfr") dir_config("gmp") if have_header('mpfr.h') && have_library('mpfr') && have_header('gmp.h') && have_library('gmp') if have_macro('MPFR_VERSION_MAJOR', 'mpfr.h') do |src| src + <<SRC #if MPFR_VERSION_MAJOR < #{REQUIRE_VERSION} # error >>>>>> MPFR_VERSION_MAJOR requires larger than #{REQUIRE_VERSION} <<<<<< #endif SRC end create_makefile("mpfr") end end
[ツッコミを入れる]