summaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2013-12-22 17:34:33 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2013-12-22 17:34:33 -0800
commit4f4686c611c4ccc313036f23a52cb90c64202204 (patch)
treeb48541a385e240ff5eb10c9fad0b1c6ae9a18d5b /Rakefile
parent06f2092096fdb705b02af4e20cc7b16b6a4fb1d7 (diff)
downloadffi-yajl-4f4686c611c4ccc313036f23a52cb90c64202204.tar.gz
more build improvement
- starting conversion back to rake compiler - bust jruby gem out into its own gemspec
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile35
1 files changed, 26 insertions, 9 deletions
diff --git a/Rakefile b/Rakefile
index 811b1e8..f65a08f 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,5 +1,6 @@
require 'rspec/core/rake_task'
require 'rubygems/package_task'
+require 'rake/extensiontask'
Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path|
gemspec = eval(IO.read(gemspec_path))
@@ -26,7 +27,11 @@ unix_gemspec = eval(File.read("ffi-yajl.gemspec"))
desc "install the gem locally"
task :install => [:package] do
- sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}.gem}
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == "java"
+ sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}-x86-java.gem}
+ else
+ sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}.gem}
+ end
end
desc "remove build files"
@@ -36,14 +41,26 @@ end
spec = Gem::Specification.load('ffi-yajl.gemspec')
-desc "compile extensions"
-task :compile do
- sh %Q{ cd ext/libyajl2 && ruby extconf.rb }
- # FIXME: please, please, fix me...
- sh %Q{ cd ext/ffi_yajl/ext/encoder && ruby extconf.rb && make && cp encoder.* ../../../../lib/ffi_yajl/ext }
- sh %Q{ rm -f lib/ffi_yajl/ext/encoder.{c,o} }
- sh %Q{ cd ext/ffi_yajl/ext/parser && ruby extconf.rb && make && cp parser.* ../../../../lib/ffi_yajl/ext }
- sh %Q{ rm -f lib/ffi_yajl/ext/parser.{c,o} }
+Rake::ExtensionTask.new do |ext|
+ ext.name = 'encoder'
+ ext.lib_dir = 'lib/ffi_yajl/ext'
+ ext.ext_dir = 'ext/ffi_yajl/ext/encoder'
+ ext.gem_spec = spec
+end
+
+Rake::ExtensionTask.new do |ext|
+ ext.name = 'parser'
+ ext.lib_dir = 'lib/ffi_yajl/ext'
+ ext.ext_dir = 'ext/ffi_yajl/ext/parser'
+ 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_encoder => :compile_libyajl2
+
task :default => :spec