From be2c156876c5b6cd4c9937c2d266f1862597af58 Mon Sep 17 00:00:00 2001 From: Huei-Horng Yo Date: Tue, 9 Jun 2015 21:07:12 +0800 Subject: Detect if ncurses' backend is terminfo or termcap. fixes #2662 Borrowed from @mattn's code at: https://github.com/mruby/mruby/issues/2662#issuecomment-65535705 Signed-off-by: Huei-Horng Yo --- Rakefile | 1 + mrbgems/mruby-bin-mirb/mrbgem.rake | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Rakefile b/Rakefile index 0f33c5ee8..89dab05e7 100644 --- a/Rakefile +++ b/Rakefile @@ -3,6 +3,7 @@ # basic build file for mruby MRUBY_ROOT = File.dirname(File.expand_path(__FILE__)) MRUBY_BUILD_HOST_IS_CYGWIN = RUBY_PLATFORM.include?('cygwin') +MRUBY_BUILD_HOST_IS_OPENBSD = RUBY_PLATFORM.include?('openbsd') # load build systems load "#{MRUBY_ROOT}/tasks/ruby_ext.rake" diff --git a/mrbgems/mruby-bin-mirb/mrbgem.rake b/mrbgems/mruby-bin-mirb/mrbgem.rake index 98df38499..e77114515 100644 --- a/mrbgems/mruby-bin-mirb/mrbgem.rake +++ b/mrbgems/mruby-bin-mirb/mrbgem.rake @@ -6,10 +6,16 @@ MRuby::Gem::Specification.new('mruby-bin-mirb') do |spec| if spec.build.cc.search_header_path 'readline/readline.h' spec.cc.defines << "ENABLE_READLINE" if spec.build.cc.search_header_path 'termcap.h' - if MRUBY_BUILD_HOST_IS_CYGWIN then - spec.linker.libraries << 'ncurses' - else - spec.linker.libraries << 'termcap' + if MRUBY_BUILD_HOST_IS_CYGWIN || MRUBY_BUILD_HOST_IS_OPENBSD + if spec.build.cc.search_header_path 'termcap.h' + if MRUBY_BUILD_HOST_IS_CYGWIN then + spec.linker.libraries << 'ncurses' + elsif spec.linker.has_library('libterminfo') then + spec.linker.libraries << 'terminfo' + else + spec.linker.libraries << 'termcap' + end + end end end if RUBY_PLATFORM.include?('netbsd') -- cgit v1.2.3