diff options
Diffstat (limited to 'ext/bigdecimal/util')
-rw-r--r-- | ext/bigdecimal/util/extconf.rb | 40 | ||||
-rw-r--r-- | ext/bigdecimal/util/util.c | 9 |
2 files changed, 49 insertions, 0 deletions
diff --git a/ext/bigdecimal/util/extconf.rb b/ext/bigdecimal/util/extconf.rb new file mode 100644 index 0000000000..023b19ba7e --- /dev/null +++ b/ext/bigdecimal/util/extconf.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: false +require 'mkmf' + +def windows_platform? + /cygwin|mingw|mswin/ === RUBY_PLATFORM +end + +if windows_platform? + library_base_name = "ruby-bigdecimal" + case RUBY_PLATFORM + when /cygwin|mingw/ + import_library_name = "libruby-bigdecimal.a" + when /mswin/ + import_library_name = "bigdecimal-$(arch).lib" + end +end + +checking_for(checking_message("Windows")) do + if windows_platform? + if defined?($extlist) + build_dir = "$(TARGET_SO_DIR)../" + else + base_dir = File.expand_path('../../../..', __FILE__) + build_dir = File.join(base_dir, "tmp", RUBY_PLATFORM, "bigdecimal", RUBY_VERSION) + end + case RUBY_PLATFORM + when /cygwin|mingw/ + $LDFLAGS << " -L#{build_dir} -L.. -L .." + $libs << " -l#{library_base_name}" + when /mswin/ + $DLDFLAGS << " /libpath:#{build_dir} /libpath:.." + $libs << " #{import_library_name}" + end + true + else + false + end +end + +create_makefile('bigdecimal/util') diff --git a/ext/bigdecimal/util/util.c b/ext/bigdecimal/util/util.c new file mode 100644 index 0000000000..8d38d87852 --- /dev/null +++ b/ext/bigdecimal/util/util.c @@ -0,0 +1,9 @@ +#include "ruby.h" + +RUBY_EXTERN VALUE rmpd_util_str_to_d(VALUE str); + +void +Init_util(void) +{ + rb_define_method(rb_cString, "to_d", rmpd_util_str_to_d, 0); +} |