require 'mkmf' require 'fileutils' IS_DARWIN = RUBY_PLATFORM =~ /darwin/ IS_SOLARIS = RUBY_PLATFORM =~ /solaris/ have_library('pthread') have_library('objc') if IS_DARWIN $CPPFLAGS.gsub! /-std=\w+/, '' $CPPFLAGS += " -Wall" unless $CPPFLAGS.split.include? "-Wall" $CPPFLAGS += " -g" unless $CPPFLAGS.split.include? "-g" $CPPFLAGS += " -rdynamic" unless $CPPFLAGS.split.include? "-rdynamic" $CPPFLAGS += " -fPIC" unless $CPPFLAGS.split.include? "-rdynamic" or IS_DARWIN $CPPFLAGS += " -std=c++0x" $CPPFLAGS += " -fpermissive" $CPPFLAGS += " -fno-omit-frame-pointer" $CPPFLAGS += " -Wno-reserved-user-defined-literal" if IS_DARWIN $LDFLAGS.insert(0, " -stdlib=libc++ ") if IS_DARWIN if ENV['CXX'] puts "SETTING CXX" CONFIG['CXX'] = ENV['CXX'] end CXX11_TEST = < true "LD_LIBRARY_PATH='#{File.expand_path('gemdir')}:#{ENV['LD_LIBRARY_PATH']}" end def libv8_gem_name return "libv8-solaris" if IS_SOLARIS is_musl = false begin is_musl = !!(File.read('/proc/self/maps') =~ /ld-musl-x86_64/) rescue; end is_musl ? 'libv8-alpine' : 'libv8' end LIBV8_VERSION = '6.7.288.46.1' libv8_rb = Dir.glob('**/libv8.rb').first FileUtils.mkdir_p('gemdir') unless libv8_rb gem_name = libv8_gem_name puts "Will try downloading #{gem_name} gem, version #{LIBV8_VERSION}" `#{fixup_libtinfo} gem install --version '= #{LIBV8_VERSION}' --install-dir gemdir #{gem_name}` unless $?.success? warn <