From 51b8c8d5a8ffee0f7d428a6d92be5e2de615aa09 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Fri, 8 Mar 2013 02:55:13 +0900 Subject: bug fix: the argument of '--sysroot' option should be followed '=' character. --- tasks/toolchains/androideabi.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 9c6d423e2..1db10de9d 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -16,7 +16,7 @@ MRuby::Toolchain.new(:androideabi) do |conf| [conf.cc, conf.cxx, conf.objc, conf.asm].each do |cc| cc.command = ENV['CC'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - cc.flags = [ENV['CFLAGS'] || ['--sysroot ' + SYSROOT]] + cc.flags = [ENV['CFLAGS'] || ['--sysroot=' + SYSROOT]] end conf.linker.command = ENV['LD'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' conf.archiver.command = ENV['AR'] || ANDROID_STANDALONE_TOOLCHAIN + 'ar' -- cgit v1.2.3 From 80edeaa81a43c7910ba35acaa15fec4854751cf8 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Fri, 8 Mar 2013 03:19:31 +0900 Subject: bug fix: add new option '-mandroid' into CFLAGS and same options are applied into LDFLAGS. --- tasks/toolchains/androideabi.rake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 1db10de9d..a513c6539 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -16,8 +16,9 @@ MRuby::Toolchain.new(:androideabi) do |conf| [conf.cc, conf.cxx, conf.objc, conf.asm].each do |cc| cc.command = ENV['CC'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - cc.flags = [ENV['CFLAGS'] || ['--sysroot=' + SYSROOT]] + cc.flags = [ENV['CFLAGS'] || ['-mandroid --sysroot=' + SYSROOT]] end conf.linker.command = ENV['LD'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' + conf.linker.flags = [ENV['LDFLAGS'] || ['-mandroid --sysroot=' + SYSROOT]] conf.archiver.command = ENV['AR'] || ANDROID_STANDALONE_TOOLCHAIN + 'ar' end -- cgit v1.2.3 From fe4f45d2b672918539e4af154a62ea8df2d98627 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Fri, 8 Mar 2013 03:21:56 +0900 Subject: refactoring --- tasks/toolchains/androideabi.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index a513c6539..f4729ce66 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -16,9 +16,9 @@ MRuby::Toolchain.new(:androideabi) do |conf| [conf.cc, conf.cxx, conf.objc, conf.asm].each do |cc| cc.command = ENV['CC'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - cc.flags = [ENV['CFLAGS'] || ['-mandroid --sysroot=' + SYSROOT]] + cc.flags = [ENV['CFLAGS'] || %W(-mandroid --sysroot=#{SYSROOT})] end conf.linker.command = ENV['LD'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - conf.linker.flags = [ENV['LDFLAGS'] || ['-mandroid --sysroot=' + SYSROOT]] + conf.linker.flags = [ENV['LDFLAGS'] || %W(-mandroid --sysroot=#{SYSROOT})] conf.archiver.command = ENV['AR'] || ANDROID_STANDALONE_TOOLCHAIN + 'ar' end -- cgit v1.2.3 From 572acc0beae3ee849ff894eac139c00aae9ae659 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Sat, 9 Mar 2013 18:55:51 +0900 Subject: add a new feature to select the target architecture. --- tasks/toolchains/androideabi.rake | 50 ++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index f4729ce66..641214be8 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -11,14 +11,52 @@ MRuby::Toolchain.new(:androideabi) do |conf| toolchain :gcc - ANDROID_STANDALONE_TOOLCHAIN = ENV['ANDROID_STANDALONE_TOOLCHAIN'] + '/bin/arm-linux-androideabi-' + DEFAULT_ANDROID_TOOLCHAIN = 'gcc' + DEFAULT_ANDROID_TARGET_ARCH = 'arm' + DEFAULT_ANDROID_TARGET_ARCH_ABI = 'armeabi' + GCC_COMMON_CFLAGS = %W(-ffunction-sections -funwind-tables -fstack-protector) + GCC_COMMON_LDFLAGS = %W() + + # An environment variable 'ANDROID_STANDALONE_TOOLCHAIN' must be set a path to toolchains. + ANDROID_STANDALONE_TOOLCHAIN = ENV['ANDROID_STANDALONE_TOOLCHAIN'] SYSROOT = ENV['ANDROID_STANDALONE_TOOLCHAIN'] + '/sysroot' + ANDROID_TARGET_ARCH = ENV['ANDROID_TARGET_ARCH'] || DEFAULT_ANDROID_TARGET_ARCH + ANDROID_TOOLCHAIN = ENV['ANDROID_TOOLCHAIN'] || DEFAULT_ANDROID_TOOLCHAIN + + case ANDROID_TARGET_ARCH.downcase + when 'arch-arm', 'arm' then + toolchain_prefix = 'arm-linux-androideabi-' + when 'arch-x86', 'x86' then + toolchain_prefix = 'i686-linux-android-' + when 'arch-mips', 'mips' then + toolchain_prefix = 'mipsel-linux-android-' + else + # Any other architectures are not supported by Android NDK. + # Notify error. + end + + case ANDROID_TOOLCHAIN.downcase + when 'gcc' then + ANDROID_CC = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'gcc' + ANDROID_LD = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'gcc' + ANDROID_AR = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'ar' + ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + when 'clang' then + # clang is not supported yet. + when 'clang31', 'clang3.1' then + # clang is not supported yet. + else + # Any other toolchains are not supported by Android NDK. + # Notify error. + end + [conf.cc, conf.cxx, conf.objc, conf.asm].each do |cc| - cc.command = ENV['CC'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - cc.flags = [ENV['CFLAGS'] || %W(-mandroid --sysroot=#{SYSROOT})] + cc.command = ENV['CC'] || ANDROID_CC + cc.flags = [ENV['CFLAGS'] || ANDROID_CFLAGS] end - conf.linker.command = ENV['LD'] || ANDROID_STANDALONE_TOOLCHAIN + 'gcc' - conf.linker.flags = [ENV['LDFLAGS'] || %W(-mandroid --sysroot=#{SYSROOT})] - conf.archiver.command = ENV['AR'] || ANDROID_STANDALONE_TOOLCHAIN + 'ar' + conf.linker.command = ENV['LD'] || ANDROID_LD + conf.linker.flags = [ENV['LDFLAGS'] || ANDROID_LDFLAGS] + conf.archiver.command = ENV['AR'] || ANDROID_AR end -- cgit v1.2.3 From e63425a8f923accabd156861e5b8a05307c44436 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Sat, 9 Mar 2013 19:34:22 +0900 Subject: add a new feature to select the target Android platform. --- tasks/toolchains/androideabi.rake | 53 +++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 5 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 641214be8..34a25151d 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -14,12 +14,15 @@ MRuby::Toolchain.new(:androideabi) do |conf| DEFAULT_ANDROID_TOOLCHAIN = 'gcc' DEFAULT_ANDROID_TARGET_ARCH = 'arm' DEFAULT_ANDROID_TARGET_ARCH_ABI = 'armeabi' + DEFAULT_ANDROID_TARGET_PLATFORM = 'android-14' + DEFAULT_GCC_VERSION = '4.6' + DEFAULT_CLANG_VERSION = '3.1' GCC_COMMON_CFLAGS = %W(-ffunction-sections -funwind-tables -fstack-protector) GCC_COMMON_LDFLAGS = %W() - # An environment variable 'ANDROID_STANDALONE_TOOLCHAIN' must be set a path to toolchains. + # 'ANDROID_STANDALONE_TOOLCHAIN' or 'ANDROID_NDK_HOME' must be set. ANDROID_STANDALONE_TOOLCHAIN = ENV['ANDROID_STANDALONE_TOOLCHAIN'] - SYSROOT = ENV['ANDROID_STANDALONE_TOOLCHAIN'] + '/sysroot' + ANDROID_NDK_HOME = ENV['ANDROID_NDK_HOME'] ANDROID_TARGET_ARCH = ENV['ANDROID_TARGET_ARCH'] || DEFAULT_ANDROID_TARGET_ARCH ANDROID_TOOLCHAIN = ENV['ANDROID_TOOLCHAIN'] || DEFAULT_ANDROID_TOOLCHAIN @@ -36,11 +39,51 @@ MRuby::Toolchain.new(:androideabi) do |conf| # Notify error. end + if ANDROID_STANDALONE_TOOLCHAIN == nil then + if RUBY_PLATFORM.include?('darwin') then + HOST_PLATFORM = 'darwin-x86' + elsif RUBY_PLATFORM.include('linux') then + HOST_PLATFORM = 'linux-x86' + elsif RUBY_PLATFORM.include('win') then + HOST_PLATFORM = 'windows' + else + # Unknown host platform. + end + + ANDROID_TARGET_PLATFORM = ENV['ANDROID_TARGET_PLATFORM'] || DEFAULT_ANDROID_TARGET_PLATFORM + + path_to_toolchain = ANDROID_NDK_HOME + '/toolchains/' + path_to_sysroot = ANDROID_NDK_HOME + '/platforms/' + ANDROID_TARGET_PLATFORM + if ANDROID_TOOLCHAIN.downcase == 'gcc' then + case ANDROID_TARGET_ARCH.downcase + when 'arch-arm', 'arm' then + path_to_toolchain += 'arm-linux-androideabi-' + path_to_sysroot += '/arch-arm' + when 'arch-x86', 'x86' then + path_to_toolchain += 'x86-' + path_to_sysroot += '/arch-x86' + when 'arch-mips', 'mips' then + path_to_toolchain += 'mipsel-linux-android-' + path_to_sysroot += '/arch-mips' + else + # Any other architecture are not supported by Android NDK. + end + path_to_toolchain += DEFAULT_GCC_VERSION + '/prebuilt/' + HOST_PLATFORM + else + path_to_toolchain += 'llvm-' + DEFAULT_CLANG_VERSION + '/prebuilt/' + HOST_PLATFORM + end + else + path_to_toolchain = ANDROID_STANDALONE_TOOLCHAIN + path_to_sysroot = ANDROID_STANDALONE_TOOLCHAIN + '/sysroot' + end + + SYSROOT = path_to_sysroot + case ANDROID_TOOLCHAIN.downcase when 'gcc' then - ANDROID_CC = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'gcc' - ANDROID_LD = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'gcc' - ANDROID_AR = ANDROID_STANDALONE_TOOLCHAIN + '/bin/' + toolchain_prefix + 'ar' + ANDROID_CC = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' + ANDROID_LD = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' + ANDROID_AR = path_to_toolchain + '/bin/' + toolchain_prefix + 'ar' ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) when 'clang' then -- cgit v1.2.3 From 887ebb8c94cddd7cbd4e711bf1bbca795d50cf7c Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Sat, 9 Mar 2013 19:57:34 +0900 Subject: more CFLAGS and LDFLAGS are specified automatically. --- tasks/toolchains/androideabi.rake | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 34a25151d..9464530fc 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -25,6 +25,7 @@ MRuby::Toolchain.new(:androideabi) do |conf| ANDROID_NDK_HOME = ENV['ANDROID_NDK_HOME'] ANDROID_TARGET_ARCH = ENV['ANDROID_TARGET_ARCH'] || DEFAULT_ANDROID_TARGET_ARCH + ANDROID_TARGET_ARCH_ABI = ENV['ANDROID_TARGET_ARCH_ABI'] || DEFAULT_ANDROID_TARGET_ARCH_ABI ANDROID_TOOLCHAIN = ENV['ANDROID_TOOLCHAIN'] || DEFAULT_ANDROID_TOOLCHAIN case ANDROID_TARGET_ARCH.downcase @@ -79,13 +80,32 @@ MRuby::Toolchain.new(:androideabi) do |conf| SYSROOT = path_to_sysroot + case ANDROID_TARGET_ARCH.downcase + when 'arch-arm', 'arm' then + if ANDROID_TARGET_ARCH_ABI.downcase == 'armeabi-v7a' then + ARCH_CFLAGS = %W(-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16) + ARCH_LDFLAGS = %W(-march=armv7-a -Wl,--fix-cortex-a8) + else + ARCH_CFLAGS = %W(-march=armv5te -mtune=xscale -msoft-float) + ARCH_LDFLAGS = %W() + end + when 'arch-x86', 'x86' then + ARCH_CFLAGS = %W() + ARCH_LDFLAGS = %W() + when 'arch-mips', 'mips' then + ARCH_CFLAGS = %W(-fpic -fno-strict-aliasing -finline-functions -fmessage-length=0 -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers) + ARCH_LDFLAGS = %W() + else + # Notify error + end + case ANDROID_TOOLCHAIN.downcase when 'gcc' then ANDROID_CC = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' ANDROID_LD = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' ANDROID_AR = path_to_toolchain + '/bin/' + toolchain_prefix + 'ar' - ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) - ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ARCH_CFLAGS + ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ARCH_LDFLAGS when 'clang' then # clang is not supported yet. when 'clang31', 'clang3.1' then -- cgit v1.2.3 From bb63eb04d02a723592e504f1b796b58154d3aa1c Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Thu, 14 Mar 2013 23:36:28 +0900 Subject: bug fix: fix "--sysroot" option and host platform detection. --- tasks/toolchains/androideabi.rake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 9464530fc..a69fd1a9d 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -43,9 +43,9 @@ MRuby::Toolchain.new(:androideabi) do |conf| if ANDROID_STANDALONE_TOOLCHAIN == nil then if RUBY_PLATFORM.include?('darwin') then HOST_PLATFORM = 'darwin-x86' - elsif RUBY_PLATFORM.include('linux') then + elsif RUBY_PLATFORM.include?('linux') then HOST_PLATFORM = 'linux-x86' - elsif RUBY_PLATFORM.include('win') then + elsif RUBY_PLATFORM.include?('win') then HOST_PLATFORM = 'windows' else # Unknown host platform. @@ -104,8 +104,8 @@ MRuby::Toolchain.new(:androideabi) do |conf| ANDROID_CC = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' ANDROID_LD = path_to_toolchain + '/bin/' + toolchain_prefix + 'gcc' ANDROID_AR = path_to_toolchain + '/bin/' + toolchain_prefix + 'ar' - ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ARCH_CFLAGS - ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot=#{SYSROOT}) + ARCH_LDFLAGS + ANDROID_CFLAGS = GCC_COMMON_CFLAGS + %W(-mandroid --sysroot="#{SYSROOT}") + ARCH_CFLAGS + ANDROID_LDFLAGS = GCC_COMMON_LDFLAGS + %W(-mandroid --sysroot="#{SYSROOT}") + ARCH_LDFLAGS when 'clang' then # clang is not supported yet. when 'clang31', 'clang3.1' then -- cgit v1.2.3 From ef23ae4e417e952aed59694aeb9bf4bf62f68472 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Thu, 14 Mar 2013 23:51:44 +0900 Subject: support 'Cygwin' as build platform. --- Rakefile | 1 + tasks/mruby_build.rake | 8 +++++++ tasks/mruby_build_commands.rake | 47 +++++++++++++++++++++++++++++++---------- 3 files changed, 45 insertions(+), 11 deletions(-) (limited to 'tasks') diff --git a/Rakefile b/Rakefile index 633c50385..b1d49525f 100644 --- a/Rakefile +++ b/Rakefile @@ -2,6 +2,7 @@ # Build description. # basic build file for mruby MRUBY_ROOT = File.dirname(File.expand_path(__FILE__)) +MRUBY_BUILD_HOST_IS_CYGWIN = RUBY_PLATFORM.include?('cygwin') # load build systems load "#{MRUBY_ROOT}/tasks/ruby_ext.rake" diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index 812e861a7..45b0ff599 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -128,6 +128,14 @@ module MRuby end end + def cygwin_filename(name) + if name.is_a?(Array) + name.flatten.map { |n| cyg_filename(n) } + else + '"%s"' % `cygpath -w "#{filename(name)}"`.strip + end + end + def exefile(name) if name.is_a?(Array) name.flatten.map { |n| exefile(n) } diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index ec8a8d3e3..3795b47d4 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -4,7 +4,7 @@ module MRuby class Command include Rake::DSL extend Forwardable - def_delegators :@build, :filename, :objfile, :libfile, :exefile + def_delegators :@build, :filename, :objfile, :libfile, :exefile, :cygwin_filename attr_accessor :build, :command def initialize(build) @@ -49,7 +49,11 @@ module MRuby def all_flags(_defineds=[], _include_paths=[], _flags=[]) define_flags = [defines, _defineds].flatten.map{ |d| option_define % d } include_path_flags = [include_paths, _include_paths].flatten.map do |f| - option_include_path % filename(f) + if MRUBY_BUILD_HOST_IS_CYGWIN + option_include_path % cygwin_filename(f) + else + option_include_path % filename(f) + end end [flags, define_flags, include_path_flags, _flags].flatten.join(' ') end @@ -61,8 +65,13 @@ module MRuby option_include_path % filename(f) end _pp "CC", infile.relative_path, outfile.relative_path - _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), - :infile => filename(infile), :outfile => filename(outfile) } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), + :infile => cygwin_filename(infile), :outfile => cygwin_filename(outfile) } + else + _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), + :infile => filename(infile), :outfile => filename(outfile) } + end end def define_rules(build_dir, source_dir='') @@ -127,7 +136,11 @@ module MRuby def all_flags(_library_paths=[], _flags=[]) library_path_flags = [library_paths, _library_paths].flatten.map do |f| - option_library_path % filename(f) + if MRUBY_BUILD_HOST_IS_CYGWIN + option_library_path % cygwin_filename(f) + else + option_library_path % filename(f) + end end [flags, library_path_flags, _flags].flatten.join(' ') end @@ -142,11 +155,19 @@ module MRuby library_path_flags = [library_paths, _library_paths].flatten.map { |f| option_library_path % filename(f) } _pp "LD", outfile.relative_path - _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(' ') } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run link_options, { :flags => all_flags(_library_paths, _flags), + :outfile => cygwin_filename(outfile) , :objs => cygwin_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(' ') } + else + _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 end @@ -162,7 +183,11 @@ module MRuby def run(outfile, objfiles) FileUtils.mkdir_p File.dirname(outfile) _pp "AR", outfile.relative_path - _run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run archive_options, { :outfile => cygwin_filename(outfile), :objs => cygwin_filename(objfiles).join(' ') } + else + _run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') } + end end end -- cgit v1.2.3 From d2f74c7c46c6cb3c4eb278b5adb1c766013d3b6c Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Thu, 14 Mar 2013 23:54:50 +0900 Subject: bug fix: fix wrong method name. --- tasks/mruby_build.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tasks') diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index 45b0ff599..d0809cbdc 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -130,7 +130,7 @@ module MRuby def cygwin_filename(name) if name.is_a?(Array) - name.flatten.map { |n| cyg_filename(n) } + name.flatten.map { |n| cygwin_filename(n) } else '"%s"' % `cygpath -w "#{filename(name)}"`.strip end -- cgit v1.2.3