summaryrefslogtreecommitdiffhomepage
path: root/tasks/toolchains
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2016-02-11 21:32:42 +0800
committerDaniel Bovensiepen <[email protected]>2016-02-11 21:32:42 +0800
commitfcbaafaa2cc8e40913c6075c768cda8c0c79eacd (patch)
treeccda4c9a3ce9ec13eab9b76c8dcebf02f18eb97a /tasks/toolchains
parent18870428bc4489d25ec89c973fe1d8e67250c29c (diff)
downloadmruby-fcbaafaa2cc8e40913c6075c768cda8c0c79eacd.tar.gz
mruby-fcbaafaa2cc8e40913c6075c768cda8c0c79eacd.zip
Add toolchain support for OpenWRT
Diffstat (limited to 'tasks/toolchains')
-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