3 require 'rake/testtask'
4 require 'rake/gempackagetask'
5 require 'rake/rdoctask'
6 require 'tools/rakehelp'
12 # TODO: compile the whole thing
14 cp "java/timebase_ext.rb", "lib/timebase_ext.rb"
17 setup_extension('timebase_ext', 'timebase_ext')
20 desc "Compiles native extensions"
21 task :compile => [:timebase_ext]
23 task :default => [:compile, :test]
25 Rake::TestTask.new do |task|
27 task.test_files = Dir.glob( 'test/test*.rb' )
31 gemspec = Gem::Specification.new do |gemspec|
32 gemspec.name = "timebase"
33 gemspec.version = GEM_VERSION
34 gemspec.author = "Jonas Pfenniger <zimbatm@oree.ch>"
35 gemspec.summary = "Low-level system timers"
36 gemspec.test_file = 'test/test_timebase.rb'
37 gemspec.files = %w( Rakefile setup.rb README LICENSE ) +
38 Dir.glob( 'test/*.rb' ) +
39 Dir.glob( 'ext/**/*.{c,rb}' ) +
40 Dir.glob( 'tools/*.rb' )
42 gemspec.require_path = 'lib'
46 gemspec.platform = Gem::Platform::WIN32
47 gemspec.files += ['lib/timebase_ext.so']
49 gemspec.platform = Gem::Platform::JAVA
50 gemspec.files += ['lib/timebase.jar'] # TODO : ???
52 gemspec.platform = Gem::Platform::RUBY
53 gemspec.extensions = Dir.glob( 'ext/*/extconf.rb' )
57 task :package => [:clean, :compile, :test]
58 Rake::GemPackageTask.new( gemspec ) do |task|
59 task.gem_spec = gemspec
63 setup_clean ["ext/**/*.{bundle,so,obj,pdb,lib,def,exp}", "ext/**/Makefile", "pkg", "lib/*.bundle", "*.gem", ".config"]
65 setup_rdoc(FileList['README', 'LICENSE', 'ext/**/*.c', '{java,lib}/**/*.rb'])
67 task :install => [:default, :package] do
68 sh %{ sudo gem install pkg/timebase-#{GEM_VERSION}.gem }
72 sh %{ sudo gem uninstall timebase }