1# usage of environmental variables to set the
2# cross compiling toolchain proper
3MRuby::Toolchain.new(:openwrt) do |conf|
4  [conf.cc, conf.objc, conf.asm].each do |cc|
5    cc.command = ENV['TARGET_CC']
6    cc.flags = ENV['TARGET_CFLAGS']
7    cc.include_paths = ["#{MRUBY_ROOT}/include"]
8    cc.option_include_path = %q[-I"%s"]
9    cc.option_define = '-D%s'
10    cc.compile_options = %q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
11  end
12
13  [conf.cxx].each do |cxx|
14    cxx.command = ENV['TARGET_CXX']
15    cxx.flags = ENV['TARGET_CXXFLAGS']
16    cxx.include_paths = ["#{MRUBY_ROOT}/include"]
17    cxx.option_include_path = %q[-I"%s"]
18    cxx.option_define = '-D%s'
19    cxx.compile_options = %q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
20   end
21
22  conf.linker do |linker|
23    linker.command = ENV['TARGET_CC']
24    linker.flags = ENV['TARGET_LDFLAGS']
25    linker.libraries = %w(m)
26    linker.library_paths = []
27    linker.option_library = '-l%s'
28    linker.option_library_path = '-L%s'
29    linker.link_options = '%{flags} -o "%{outfile}" %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
30  end
31
32  conf.archiver do |archiver|
33    archiver.command = ENV['TARGET_AR']
34    archiver.archive_options = 'rs "%{outfile}" %{objs}'
35  end
36end
37