% config = File.read(conffile = 'rbconfig.rb')
% config.sub!(/^(\s*)RUBY_VERSION\b.*(\sor\s*)$/, '\1true\2')
% rbconfig = Module.new {module_eval(config, conffile)}::RbConfig
% C = rbconfig::MAKEFILE_CONFIG.dup
% def C.[](name) str = super and (str unless str.empty?); end
#define RUBY_BASE_NAME			"${RUBY_BASE_NAME}"
#define RUBY_VERSION_NAME		RUBY_BASE_NAME"-"RUBY_LIB_VERSION
% if C["RUBY_LIB_VERSION_STYLE"]
#define RUBY_LIB_VERSION_STYLE		${RUBY_LIB_VERSION_STYLE}
% elsif !C["RUBY_LIB_VERSION"]
#define RUBY_LIB_VERSION_STYLE		3	/* full */
% else
#define RUBY_LIB_VERSION		"${RUBY_LIB_VERSION}"
% end
#define RUBY_EXEC_PREFIX		"<%='${RUBY_EXEC_PREFIX}' if C['RUBY_EXEC_PREFIX']%>"
#define RUBY_LIB_PREFIX 		"${rubylibprefix}"
% unless (sitearch = C["sitearch"]) == '$(arch)'
#define RUBY_SITEARCH			"<%=sitearch%>"
% end
#define RUBY_ARCH_PREFIX_FOR(arch)	"${rubyarchprefix}"
#define RUBY_SITEARCH_PREFIX_FOR(arch)	"${rubysitearchprefix}"
#define RUBY_LIB			"${rubylibdir}"
#define RUBY_ARCH_LIB_FOR(arch) 	"${rubyarchdir}"
% if C["sitedir"] == "no"
#define NO_RUBY_SITE_LIB		1
% else
#define RUBY_SITE_LIB			"${sitedir}"
#define RUBY_SITE_ARCH_LIB_FOR(arch)	"${sitearchdir}"
% end
% if C["vendordir"] == "no"
#define NO_RUBY_VENDOR_LIB		1
% else
#define RUBY_VENDOR_LIB 		"${vendordir}"
#define RUBY_VENDOR_ARCH_LIB_FOR(arch)	"${vendorarchdir}"
% end
% if C["RUBY_SEARCH_PATH"]
#define RUBY_SEARCH_PATH		"${RUBY_SEARCH_PATH}"
% end
%
% R = {}
% R["ruby_version"] = '"RUBY_LIB_VERSION"'
% R["arch"] = '"arch"'
% R["sitearch"] = '"arch"'
% R["vendorlibdir"] = '"RUBY_VENDOR_LIB2"'
% R["sitelibdir"] = '"RUBY_SITE_LIB2"'
% R["vendordir"] = '"RUBY_VENDOR_LIB"'
% R["sitedir"] = '"RUBY_SITE_LIB"'
% R["rubylibdir"] = '"RUBY_LIB"'
% R["rubylibprefix"] = '"RUBY_LIB_PREFIX"'
% R["rubyarchprefix"] = '"RUBY_ARCH_PREFIX_FOR(arch)"'
% R["rubysitearchprefix"] = '"RUBY_SITEARCH_PREFIX_FOR(arch)"'
% R["exec_prefix"] = '"RUBY_EXEC_PREFIX"'
% R["prefix"] = '"RUBY_EXEC_PREFIX"'
% exec_prefix_pat = /\A"#{Regexp.quote(rbconfig::CONFIG['exec_prefix'])}(?=\/|\z)/
% _erbout.gsub!(/^(#define\s+(\S+)\s+)(.*)/) {
%   pre, name, repl = $1, $2, $3
%   pat = %["#{name}"]
%   c = C.merge(R.reject {|key, value| key == name or value.include?(pat)})
%   rbconfig.expand(repl, c)
%   repl.gsub!(/^""(?!$)|(.)""$/, '\1')
%   repl.sub!(exec_prefix_pat, 'RUBY_EXEC_PREFIX"')
%   pre + repl
% }
