зеркало из https://github.com/github/ruby.git
62 строки
2.2 KiB
C
62 строки
2.2 KiB
C
% require './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
|
|
% }
|