summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2013-11-23 00:17:01 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2013-11-23 00:17:01 -0800
commit245072bee2409bb1bdad14938c1bb0f64d900ed7 (patch)
tree2e57c905e3c0e9510ee0f18ac3ca61096abbdeb5
parent5b4d4c427284d144d134009647d92d3976433a05 (diff)
downloadffi-yajl-245072bee2409bb1bdad14938c1bb0f64d900ed7.tar.gz
rake compile almost working with vendored libyajl
-rw-r--r--Rakefile10
-rw-r--r--ext/ffi_yajl/ext/encoder/extconf.rb9
-rw-r--r--ext/libyajl2/extconf.rb1
3 files changed, 20 insertions, 0 deletions
diff --git a/Rakefile b/Rakefile
index 9e7b635..e7d5265 100644
--- a/Rakefile
+++ b/Rakefile
@@ -36,6 +36,8 @@ task :clean do
end
spec = Gem::Specification.load('ffi-yajl.gemspec')
+
+
Rake::ExtensionTask.new do |ext|
ext.name = 'encoder'
ext.lib_dir = 'lib/ffi_yajl/ext'
@@ -43,4 +45,12 @@ Rake::ExtensionTask.new do |ext|
ext.gem_spec = spec
end
+Rake::ExtensionTask.new do |ext|
+ ext.name = 'libyajl2'
+ ext.ext_dir = 'ext/libyajl2'
+ ext.gem_spec = spec
+end
+
+task :compile_encodr => :compile_libyajl2
+
task :default => :spec
diff --git a/ext/ffi_yajl/ext/encoder/extconf.rb b/ext/ffi_yajl/ext/encoder/extconf.rb
index 563ef5c..40f16ad 100644
--- a/ext/ffi_yajl/ext/encoder/extconf.rb
+++ b/ext/ffi_yajl/ext/encoder/extconf.rb
@@ -5,6 +5,15 @@ $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/]
diff --git a/ext/libyajl2/extconf.rb b/ext/libyajl2/extconf.rb
index e8fa60f..9d01081 100644
--- a/ext/libyajl2/extconf.rb
+++ b/ext/libyajl2/extconf.rb
@@ -43,6 +43,7 @@ unless libyajl2_ok
Dir.chdir ".."
end
+dir_config 'libyajl2'
File.open("Makefile", "w") do |mf|
mf.puts "# Dummy makefile for non-mri rubies"