aboutsummaryrefslogtreecommitdiffstats
path: root/tool/shvar_to_cpp.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/shvar_to_cpp.rb')
-rwxr-xr-xtool/shvar_to_cpp.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/tool/shvar_to_cpp.rb b/tool/shvar_to_cpp.rb
new file mode 100755
index 0000000000..79764e9743
--- /dev/null
+++ b/tool/shvar_to_cpp.rb
@@ -0,0 +1,25 @@
+#!/usr/bin/ruby
+
+require './rbconfig'
+C = RbConfig::MAKEFILE_CONFIG.dup
+C["ruby_version"] = '"RUBY_LIB_VERSION"'
+C["arch"] = '"arch"'
+C["sitearch"] = '"arch"'
+C["vendorarchdir"] = '"RUBY_VENDOR_ARCH_LIB"'
+C["sitearchdir"] = '"RUBY_SITE_ARCH_LIB"'
+C["vendorlibdir"] = '"RUBY_VENDOR_LIB2"'
+C["sitelibdir"] = '"RUBY_SITE_LIB2"'
+C["vendordir"] = '"RUBY_VENDOR_LIB"'
+C["sitedir"] = '"RUBY_SITE_LIB"'
+C["rubylibdir"] = '"RUBY_LIB"'
+C["rubylibprefix"] = '"RUBY_LIB_PREFIX"'
+C["rubyarchprefix"] = '"RUBY_ARCH_PREFIX_FOR(arch)"'
+C["rubysitearchprefix"] = '"RUBY_SITEARCH_PREFIX_FOR(arch)"'
+C["exec_prefix"] = '"RUBY_EXEC_PREFIX"'
+
+verconf = File.read(ARGV[0])
+verconf.gsub!(/^(#define\s+\S+\s+)(.*)/) {
+ $1 + RbConfig.expand($2, C).gsub(/^""(?!$)|(.)""$/, '\1')
+}
+
+puts verconf