diff options
Diffstat (limited to 'tasks/mruby_build_commands.rake')
| -rw-r--r-- | tasks/mruby_build_commands.rake | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index 23d2c31ae..8056a9f7c 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -106,19 +106,19 @@ module MRuby end class Command::Linker < Command - attr_accessor :flags, :flags_before_libraries, :libraries, :library_paths + attr_accessor :flags, :library_paths, :flags_before_libraries, :libraries, :flags_after_libraries attr_accessor :link_options, :option_library, :option_library_path def initialize(build) super @command = ENV['LD'] || 'gcc' @flags = (ENV['LDFLAGS'] || []) - @flags_before_libraries = [] + @flags_before_libraries, @flags_after_libraries = [], [] @libraries = [] @library_paths = [] @option_library = '-l%s' @option_library_path = '-L%s' - @link_options = "%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs}" + @link_options = "%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}" end def all_flags(_library_paths=[], _flags=[]) @@ -132,14 +132,15 @@ module MRuby [libraries, _libraries].flatten.map{ |d| option_library % d }.join(' ') end - def run(outfile, objfiles, _libraries=[], _library_paths=[], _flags=[], _flags_before_libraries=[]) + def run(outfile, objfiles, _libraries=[], _library_paths=[], _flags=[], _flags_before_libraries=[], _flags_after_libraries=[]) FileUtils.mkdir_p File.dirname(outfile) library_flags = [libraries, _libraries].flatten.map { |d| option_library % d } library_path_flags = [library_paths, _library_paths].flatten.map { |f| option_library_path % filename(f) } - _pp "LD #{filename(outfile)}" + _pp "LD", "#{filename(outfile)}" _run link_options, { :flags => all_flags(_library_paths, _flags), :outfile => filename(outfile) , :objs => filename(objfiles).join(' '), :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), + :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), :libs => library_flags.join(' ') } end end |
