summaryrefslogtreecommitdiff
path: root/tool/compile_prelude.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/compile_prelude.rb')
-rw-r--r--tool/compile_prelude.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/tool/compile_prelude.rb b/tool/compile_prelude.rb
new file mode 100644
index 0000000000..13ccb8aced
--- /dev/null
+++ b/tool/compile_prelude.rb
@@ -0,0 +1,25 @@
+
+prelude, outfile = *ARGV
+lines = []
+
+File.readlines(prelude).each{|line|
+ lines << "#{line.dump}"
+}
+
+open(outfile, 'w'){|f|
+f.puts <<EOS__
+
+#include "ruby/ruby.h"
+static const char *prelude_code =
+#{lines.join("\n")}
+;
+void
+Init_prelude(void)
+{
+ rb_iseq_eval(rb_iseq_compile(
+ rb_str_new2(prelude_code),
+ rb_str_new2("prelude.rb"), INT2FIX(1)));
+}
+EOS__
+}
+