summaryrefslogtreecommitdiffhomepage
path: root/tasks/toolchains/openwrt.rake
blob: 6ef3f4e4a8f860fe570c0ae6853e93de1348404e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# usage of environmental variables to set the
# cross compiling toolchain proper
MRuby::Toolchain.new(:openwrt) do |conf|
  [conf.cc, conf.cxx, conf.objc, conf.asm].each do |cc|
    if cc == conf.cxx
      cc.command = ENV['TARGET_CXX']
      cc.flags = ENV['TARGET_CXXFLAGS']
    else
      cc.command = ENV['TARGET_CC']
      cc.flags = ENV['TARGET_CFLAGS']
    end
    cc.option_include_path = %q[-I"%s"]
    cc.option_define = '-D%s'
    cc.compile_options = '%{flags} -MMD -o "%{outfile}" -c "%{infile}"'
    cc.preprocess_options = '%{flags} -o "%{outfile}" -E -P "%{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