# libguestfs Ruby bindings -*- ruby -*- # @configure_input@ # Copyright (C) 2009 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. require 'rake/clean' require 'rake/rdoctask' require 'rake/testtask' require 'rake/gempackagetask' PKG_NAME='@PACKAGE_NAME@' PKG_VERSION='@PACKAGE_VERSION@' EXT_CONF='@abs_srcdir@/ext/guestfs/extconf.rb' MAKEFILE='@builddir@/ext/guestfs/Makefile' GUESTFS_MODULE='@builddir@/ext/guestfs/_guestfs.so' GUESTFS_SRC='@srcdir@/ext/guestfs/_guestfs.c' CLEAN.include [ "@builddir@/ext/**/*.o", GUESTFS_MODULE, "@builddir@/ext/**/depend" ] CLOBBER.include [ "@builddir@/config.save", "@builddir@/ext/**/mkmf.log", MAKEFILE ] # Build locally file MAKEFILE => EXT_CONF do |t| unless sh "top_srcdir=$(pwd)/@top_srcdir@; top_builddir=$(pwd)/@top_builddir@; export ARCHFLAGS=\"-arch $(uname -m)\"; mkdir -p @builddir@/ext/guestfs; cd @builddir@/ext/guestfs; @RUBY@ #{EXT_CONF} --with-_guestfs-include=$top_srcdir/src --with-_guestfs-lib=$top_builddir/src/.libs" $stderr.puts "Failed to run extconf" break end end file GUESTFS_MODULE => [ MAKEFILE, GUESTFS_SRC ] do |t| Dir::chdir("@builddir@/ext/guestfs") do unless sh "make" $stderr.puts "make failed" break end end end desc "Build the native library" task :build => GUESTFS_MODULE Rake::TestTask.new(:test) do |t| t.test_files = FileList['tests/tc_*.rb'] t.libs = [ 'lib', 'ext/guestfs' ] end task :test => :build RDOC_FILES = FileList[ "@srcdir@/README.rdoc", "@srcdir@/lib/**/*.rb", "@srcdir@/ext/**/*.[ch]" ] Rake::RDocTask.new do |rd| rd.main = "@srcdir@/README.rdoc" rd.rdoc_dir = "doc/site/api" rd.rdoc_files.include(RDOC_FILES) end Rake::RDocTask.new(:ri) do |rd| rd.main = "@srcdir@/README.rdoc" rd.rdoc_dir = "doc/ri" rd.options << "--ri-system" rd.rdoc_files.include(RDOC_FILES) end # Package tasks PKG_FILES = FileList[ "Rakefile", "COPYING", "README", "NEWS", "@srcdir@/README.rdoc", "lib/**/*.rb", "ext/**/*.[ch]", "ext/**/MANIFEST", "ext/**/extconf.rb", "tests/**/*", "spec/**/*" ] DIST_FILES = FileList[ "pkg/*.src.rpm", "pkg/*.gem", "pkg/*.zip", "pkg/*.tgz" ] SPEC = Gem::Specification.new do |s| s.name = PKG_NAME s.version = PKG_VERSION s.email = "rjones@redhat.com" s.homepage = "http://libguestfs.org/" s.summary = "Ruby bindings for libguestfs" s.files = PKG_FILES s.autorequire = "guestfs" s.required_ruby_version = '>= 1.8.1' s.extensions = "ext/guestfs/extconf.rb" s.description = <