diff --git a/ext/extconf.rb b/ext/extconf.rb index a2886f6..591b478 100644 --- a/ext/extconf.rb +++ b/ext/extconf.rb @@ -1,7 +1,39 @@ #!/usr/bin/env ruby require 'mkmf' -dir_config('db') +inc, lib = dir_config('db') + +# OS X compatibility +if(PLATFORM =~ /darwin/) then + # test if Bdb is probably universal + + filetype = (IO.popen("file #{inc}/../db_dump").readline.chomp rescue nil) + # if it's not universal, ARCHFLAGS should be set + if((filetype !~ /universal binary/) && ENV['ARCHFLAGS'].nil?) then + arch = (IO.popen("uname -m").readline.chomp rescue nil) + $stderr.write %{ +=========== WARNING =========== + +You are building this extension on OS X without setting the +ARCHFLAGS environment variable, and BerkeleyDB does not appear +to have been built as a universal binary. If you are seeing this +message, that means that the build will probably fail. + +Try setting the environment variable ARCHFLAGS +to '-arch #{arch}' before building. + +For example: +(in bash) $ export ARCHFLAGS='-arch #{arch}' +(in tcsh) % setenv ARCHFLAGS '-arch #{arch}' + +Then try building again. + +=================================== + +} + # We don't exit here. Who knows? It might build. + end +end versions=%w(db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2) until versions.empty?