diff options
Diffstat (limited to 'ext/ffi_yajl/ext/parser/extconf.rb')
-rw-r--r-- | ext/ffi_yajl/ext/parser/extconf.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ext/ffi_yajl/ext/parser/extconf.rb b/ext/ffi_yajl/ext/parser/extconf.rb new file mode 100644 index 0000000..e78e7a2 --- /dev/null +++ b/ext/ffi_yajl/ext/parser/extconf.rb @@ -0,0 +1,29 @@ +require 'mkmf' + +# the customer is always right, ruby is always compiled to be stupid +$CFLAGS = ENV['CFLAGS'] if ENV['CFLAGS'] +$LDFLAGS = ENV['LDFLAGS'] if ENV['LDFLAGS'] +RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] + +# search our gem root first to pick up libyajl2 that we vendored +gem_root = File.expand_path(File.join(File.dirname(__FILE__), "../../../..")) +$CFLAGS = "-I#{gem_root}/include -L#{gem_root}/lib #{$CFLAGS}" +$LDFLAGS = "-L#{gem_root}/lib #{$CFLAGS}" + +puts gem_root +puts $CFLAGS +puts $LDFLAGS + +# except if you're doing an unoptimized gcc install we're going to help you out a bit +if RbConfig::MAKEFILE_CONFIG['CC'] =~ /gcc|clang/ + $CFLAGS << " -O3" unless $CFLAGS[/-O\d/] + # how many people realize that -Wall is a compiler-specific flag??? + # apparently not many based on reading lots of shitty extconf.rb's out there + $CFLAGS << " -Wall" +end + +$LDFLAGS << " -lyajl" + +dir_config 'parser' + +create_makefile 'ffi_yajl/ext/parser' |