ext/fiddle/extconf.rb in fiddle-1.0.7 vs ext/fiddle/extconf.rb in fiddle-1.0.8

- old
+ new

@@ -1,10 +1,51 @@ # frozen_string_literal: true require 'mkmf' # :stopdoc: +def gcc? + RbConfig::CONFIG["GCC"] == "yes" +end + +def disable_optimization_build_flag(flags) + if gcc? + expanded_flags = RbConfig.expand(flags.dup) + optimization_option_pattern = /(^|\s)?-O\d(\s|$)?/ + if optimization_option_pattern.match?(expanded_flags) + expanded_flags.gsub(optimization_option_pattern, '\\1-Og\\2') + else + flags + " -Og" + end + else + flags + end +end + +def enable_debug_build_flag(flags) + if gcc? + expanded_flags = RbConfig.expand(flags.dup) + debug_option_pattern = /(^|\s)-g(?:gdb)?\d?(\s|$)/ + if debug_option_pattern.match?(expanded_flags) + expanded_flags.gsub(debug_option_pattern, '\\1-ggdb3\\2') + else + flags + " -ggdb3" + end + else + flags + end +end + +checking_for(checking_message("--enable-debug-build option")) do + enable_debug_build = enable_config("debug-build", false) + if enable_debug_build + $CFLAGS = disable_optimization_build_flag($CFLAGS) + $CFLAGS = enable_debug_build_flag($CFLAGS) + end + enable_debug_build +end + libffi_version = nil have_libffi = false bundle = enable_config('bundled-libffi') unless bundle dir_config 'libffi' @@ -157,9 +198,11 @@ have_func "dlerror" elsif have_header "windows.h" %w{ LoadLibrary FreeLibrary GetProcAddress }.each do |func| abort "missing function #{func}" unless have_func(func) end + + have_library "ws2_32" end have_const('FFI_STDCALL', ffi_header) config = File.read(RbConfig.expand(File.join($arch_hdrdir, "ruby/config.h")))