Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > rbconfigライブラリ > Configモジュール > MAKEFILE_CONFIG

constant Config::MAKEFILE_CONFIG

MAKEFILE_CONFIG -> Hash[permalink][rdoc]

Config::CONFIG と同じですが、その値は以下のような形 で他の変数への参照を含みます。

MAKEFILE_CONFIG["bindir"] = "$(exec_prefix)/bin"

これは、Makefile の変数参照の形式で MAKEFILE_CONFIG は、 Makefile 作成の際に利用されることを想定しています。

require 'rbconfig'

print <<-END_OF_MAKEFILE
prefix = #{Config::MAKEFILE_CONFIG['prefix']}
exec_prefix = #{Config::MAKEFILE_CONFIG['exec_prefix']}
bindir = #{Config::MAKEFILE_CONFIG['bindir']}
END_OF_MAKEFILE

=> prefix = /usr/local
   exec_prefix = $(prefix)
   bindir = $(exec_prefix)/bin

Config.expand は、このような参照を解決する メソッドとして rbconfig 内部で利用されています。 (CONFIG 変数は、MAKEFILE_CONFIG の内容から Config.expand を使って生成されています)

require 'rbconfig'
p Config.expand(Config::MAKEFILE_CONFIG["bindir"])
# => "/usr/local/bin"