file “#{Webruby.build_dir}/gem_library.js” => :gen_gems_config file “#{Webruby.build_dir}/gem_append.js” => :gen_gems_config file “#{Webruby.build_dir}/gem_test_library.js” => :gen_gems_config file “#{Webruby.build_dir}/gem_test_append.js” => :gen_gems_config
task :gen_gems_config do |t|
sh "ruby #{SCRIPT_GEN_POST} #{Webruby::App.config.loading_mode} #{Webruby.build_dir}/js_api.js" sh "ruby #{SCRIPT_GEN_GEMS_CONFIG} #{Webruby.build_config} #{Webruby.build_dir}/js_api.js #{Webruby.build_dir}/gem_library.js #{Webruby.build_dir}/gem_append.js #{Webruby.build_dir}/gem_test_library.js #{Webruby.build_dir}/gem_test_append.js #{Webruby.build_dir}/functions #{Webruby.full_build_dir}/mruby/emscripten"
end
file “#{Webruby.build_dir}/rbcode.c” => [Webruby.entrypoint_file,
:libmruby, Webruby.build_dir] + Webruby.rb_files do |t| if Webruby::App.config.source_processor == :gen_require ENV["MRBC"] = "#{Webruby.full_build_dir}/#{MRBC}" sh "ruby #{SCRIPT_GEN_REQUIRE} #{File.expand_path(Webruby.entrypoint_file)} #{Webruby.full_build_dir}/rbcode.c" else sh "ruby #{MRUBYMIX} #{Webruby.entrypoint_file} #{Webruby.build_dir}/rbcode.rb" sh "#{Webruby.build_dir}/#{MRBC} -Bapp_irep -o#{Webruby.build_dir}/rbcode.c #{Webruby.build_dir}/rbcode.rb" sh "rm #{Webruby.build_dir}/rbcode.rb" end
end
file “#{Webruby.build_dir}/app.c” => [“#{Webruby.build_dir}/rbcode.c”,
"#{DRIVER_DIR}/driver.c"] do |t| sh "cat #{DRIVER_DIR}/driver.c #{Webruby.build_dir}/rbcode.c > #{Webruby.build_dir}/app.c"
end
file “#{Webruby.build_dir}/app.o” => “#{Webruby.build_dir}/app.c” do |t|
require_flag = (Webruby::App.config.source_processor == :gen_require) ? ("-DHAS_REQUIRE") : ("") sh "#{EMCC} #{EMCC_CFLAGS} #{require_flag} #{Webruby::App.config.cflags.join(' ')} #{Webruby.build_dir}/app.c -o #{Webruby.build_dir}/app.o"
end
file “#{Webruby.build_dir}/#{Webruby::App.config.output_name}” =>
["#{Webruby.build_dir}/app.o", :libmruby] + Webruby.gem_js_files do |t| func_arg = Webruby.get_exported_arg("#{Webruby.build_dir}/functions", Webruby::App.config.loading_mode, []) runner_arg = Webruby::App.config.append_file ? "--post-js #{Webruby::App.config.append_file}" : "" sh "#{EMLD} #{Webruby.build_dir}/app.o #{Webruby.object_files.join(' ')} #{Webruby::App.config.static_libs.join(' ')} -o #{Webruby.build_dir}/#{Webruby::App.config.output_name} #{Webruby.gem_js_flags} #{func_arg} #{Webruby::App.config.ldflags.join(' ')} #{Webruby::App.config.optimization_flag} #{runner_arg}"
end
file “#{Webruby.build_dir}/mrbtest.js” =>
[:libmruby_test] + Webruby.gem_test_js_files do |t| # loading mode 0 is necessary for mrbtest func_arg = Webruby.get_exported_arg("#{Webruby.build_dir}/functions", 0, ['main']) sh "#{EMLD} #{Webruby.test_object_files.join(' ')} #{Webruby.object_files.join(' ')} #{Webruby::App.config.static_libs.join(' ')} -o #{Webruby.build_dir}/mrbtest.js -s TOTAL_MEMORY=33554432 #{Webruby.gem_test_js_flags} #{func_arg} #{Webruby::App.config.ldflags.join(' ')} #{Webruby::App.config.optimization_flag}"
end