#!/usr/bin/env ruby require 'tempfile' require 'mruby_tools' # args like: file1.rb file2.rb -o outfile # possibly: file1.rb -o outfile file2.rb -c generated.c opts = MRubyTools.args(ARGV) MRubyTools.usage if opts[:help] rb_files = opts.fetch(:rb_files) MRubyTools.usage("no .rb files provided") if rb_files.empty? c_code = MRubyTools.c_wrapper(rb_files) puts c_code + "\n" if opts[:verbose] out_file = opts.fetch(:out_file) c_file = opts.fetch(:c_file) c_file.write(c_code) c_file.close msd = MRubyTools.mruby_src_dir gcc_args = [ '-std=c99', "-I", File.join(msd, 'include'), c_file.path, "-o", out_file, File.join(msd, 'build', 'host', 'lib', 'libmruby.a'), '-lm', ] puts "compiling..." puts "created binary executable: #{out_file}" if system('gcc', *gcc_args)