summaryrefslogtreecommitdiff
path: root/ext/digest/sha2/extconf.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-02-22 02:21:22 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-02-22 02:21:22 +0000
commite6dde8be4d2538464372fd0c7499d625239a3b08 (patch)
tree3e4441f09c6aa5655877a9cb4f6258d6d0d39f4f /ext/digest/sha2/extconf.rb
parent034acb5806a718e3ec361af43b902c1ec3591ff3 (diff)
* ext/digest/sha2: Use OpenSSL's SHA1 engine if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/digest/sha2/extconf.rb')
-rw-r--r--ext/digest/sha2/extconf.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/digest/sha2/extconf.rb b/ext/digest/sha2/extconf.rb
index c15043f..e546e3a 100644
--- a/ext/digest/sha2/extconf.rb
+++ b/ext/digest/sha2/extconf.rb
@@ -6,10 +6,18 @@ require "mkmf"
$defs << "-DHAVE_CONFIG_H"
$INCFLAGS << " -I$(srcdir)/.."
-$objs = [
- "sha2.#{$OBJEXT}",
- "sha2init.#{$OBJEXT}",
-]
+$objs = [ "sha2init.#{$OBJEXT}" ]
+
+dir_config("openssl")
+
+if !with_config("bundled-sha2") &&
+ have_library("crypto") && have_header("openssl/sha.h") &&
+ %w[SHA256 SHA512].all? {|d| have_func("#{d}_Transform", "openssl/sha.h")}
+ $objs << "sha2ossl.#{$OBJEXT}"
+else
+ have_type("u_int8_t")
+ $objs << "sha2.#{$OBJEXT}"
+end
have_header("sys/cdefs.h")