58 lines
1.2 KiB
Ruby
58 lines
1.2 KiB
Ruby
#:stopdoc:
|
|
require 'rbconfig'
|
|
|
|
# Attempts to require anative extension.
|
|
# Falls back to pure-ruby version, if it fails.
|
|
#
|
|
# This uses Config::CONFIG['arch'] from rbconfig.
|
|
|
|
def require_arch(fname)
|
|
arch = Config::CONFIG['arch']
|
|
begin
|
|
path = File.join("tmail", arch, fname)
|
|
require path
|
|
rescue LoadError => e
|
|
# try pre-built Windows binaries
|
|
if arch =~ /mswin/
|
|
require File.join("tmail", 'mswin32', fname)
|
|
else
|
|
raise e
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
# def require_arch(fname)
|
|
# dext = Config::CONFIG['DLEXT']
|
|
# begin
|
|
# if File.extname(fname) == dext
|
|
# path = fname
|
|
# else
|
|
# path = File.join("tmail","#{fname}.#{dext}")
|
|
# end
|
|
# require path
|
|
# rescue LoadError => e
|
|
# begin
|
|
# arch = Config::CONFIG['arch']
|
|
# path = File.join("tmail", arch, "#{fname}.#{dext}")
|
|
# require path
|
|
# rescue LoadError
|
|
# case path
|
|
# when /i686/
|
|
# path.sub!('i686', 'i586')
|
|
# when /i586/
|
|
# path.sub!('i586', 'i486')
|
|
# when /i486/
|
|
# path.sub!('i486', 'i386')
|
|
# else
|
|
# begin
|
|
# require fname + '.rb'
|
|
# rescue LoadError
|
|
# raise e
|
|
# end
|
|
# end
|
|
# retry
|
|
# end
|
|
# end
|
|
# end
|
|
#:startdoc: |