require "library" require "rake/clean" require "rake/testtask" require "rake/rdoctask" require "rake/packagetask" require "rake/contrib/compositepublisher" require "rake/contrib/sshpublisher" PKG_NAME = "ruby-edje" CLOBBER.include("src/*.{s,}o") ext_obj = Dir["src/*.c"].map { |f| f.sub(/\.[^.]+$/, ".o") } ext_lib = Library.new("edje", ENV["EDJE_PREFIX"] || "/usr/local", "src") task :default => [ext_lib.so] file ext_lib.so => ext_lib.objects do |t| sh "cc #{ext_lib.ldflags} -shared -Wl " + " #{t.prerequisites.join(" ")} -o #{t.name}" end ext_lib.objects.each do |object| file object => object.sub(/\.[^.]+$/, ".c") do |t| sh "cc #{ext_lib.cflags} #{t.prerequisites.first} " + "-c -o #{t.name}" end end task :install => [ext_lib.so] do |t| destdir = "#{ENV["DESTDIR"]}" sitearchdir = ENV["RUBYARCHDIR"] || Config::CONFIG['sitearchdir'] ddir = destdir + sitearchdir FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir) FileUtils::Verbose.install(ext_lib.so, ddir, :mode => 0755) end Rake::RDocTask.new do |t| t.rdoc_dir = "doc" t.title = "ruby-edje -- Edje bindings for Ruby" t.options = ["--line-numbers", "--inline-source", "--main", "README"] t.rdoc_files = FileList[ "AUTHORS", "COPYING", "README", "src/rb_edje_main.c", "src/rb_edje.c", "src/rb_part.c" ] end task :publish => [:rdoc] do p = Rake::CompositePublisher.new p.add(Rake::SshFreshDirPublisher.new("code-monkey.de", "public_docs/" + PKG_NAME, "doc")) p.upload end