summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-02-12 00:48:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-02-12 00:48:13 +0900
commit473827d1d10a9612348c21b5c0cac82a09c43c97 (patch)
tree2097fc94c7295eb05832901d86d560ae691bae93
parentf40fc9ab6965f1fdbbec63e05da839eaa10970b9 (diff)
parentfcbaafaa2cc8e40913c6075c768cda8c0c79eacd (diff)
downloadmruby-473827d1d10a9612348c21b5c0cac82a09c43c97.tar.gz
mruby-473827d1d10a9612348c21b5c0cac82a09c43c97.zip
Merge pull request #3100 from deuwert/toolchain-openwrt
Add toolchain support for OpenWRT
-rw-r--r--tasks/toolchains/openwrt.rake38
1 files changed, 38 insertions, 0 deletions
diff --git a/tasks/toolchains/openwrt.rake b/tasks/toolchains/openwrt.rake
new file mode 100644
index 000000000..1637f6d91
--- /dev/null
+++ b/tasks/toolchains/openwrt.rake
@@ -0,0 +1,38 @@
+# usage of environmental variables to set the
+# cross compiling toolchain proper
+MRuby::Toolchain.new(:openwrt) do |conf|
+ [conf.cc, conf.objc, conf.asm].each do |cc|
+ cc.command = ENV['TARGET_CC']
+ cc.flags = ENV['TARGET_CFLAGS']
+ cc.include_paths = ["#{MRUBY_ROOT}/include"]
+ cc.defines = %w(DISABLE_GEMS)
+ cc.option_include_path = '-I%s'
+ cc.option_define = '-D%s'
+ cc.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
+ end
+
+ [conf.cxx].each do |cxx|
+ cxx.command = ENV['TARGET_CXX']
+ cxx.flags = ENV['TARGET_CXXFLAGS']
+ cxx.include_paths = ["#{MRUBY_ROOT}/include"]
+ cxx.defines = %w(DISABLE_GEMS)
+ cxx.option_include_path = '-I%s'
+ cxx.option_define = '-D%s'
+ cxx.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
+ end
+
+ conf.linker do |linker|
+ linker.command = ENV['TARGET_CC']
+ linker.flags = ENV['TARGET_LDFLAGS']
+ linker.libraries = %w(m)
+ linker.library_paths = []
+ linker.option_library = '-l%s'
+ linker.option_library_path = '-L%s'
+ linker.link_options = '%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
+ end
+
+ conf.archiver do |archiver|
+ archiver.command = ENV['TARGET_AR']
+ archiver.archive_options = 'rs %{outfile} %{objs}'
+ end
+end