ruby/template/verconf.h.tmpl

64 строки
2.4 KiB
Cheetah

% 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"] || 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"] || 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
% }