diff -r 000000000000 -r 92d00ff32c56 Rakefile.local --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Rakefile.local Fri Aug 15 15:43:38 2008 +0000 @@ -0,0 +1,89 @@ +#!rake + +begin + require 'mkrf' +rescue LoadError => err + unless Object.const_defined?( :Gem ) + require 'rubygems' + retry + end + + fail "You need to have the mkrf library installed to build this." +end + + +# C extension constants +EXT_RAKEFILE = EXTDIR + 'Rakefile' +EXT_SO = EXTDIR + "redleaf_ext.#{CONFIG['DLEXT']}" + +ADDITIONAL_INCLUDE_DIRS = %w[ + /usr/local/include + /opt/include + /opt/local/include +] + +# Additional (auto-generated) spec constants +SPEC_RAKEFILE = SPECDIR + 'Rakefile' + + +##################################################################### +### T A S K S +##################################################################### + +# task :local => [ :build, :build_specs ] +task :local => [ :build ] +task :spec => [ :build ] + +desc "Make the Rakefile for the C extension" +file EXT_RAKEFILE.to_s => FileList[ 'Rakefile', EXTDIR + '*.c' ] do + require 'misc/monkeypatches' # Fix Mkrf's output + + log "Configuring bsdjail C extension" + Dir.chdir( EXTDIR ) do + Mkrf::Generator.new( 'bsdjail', FileList['*.c'] ) do |gen| + trace "Setting CFLAGS" + gen.cflags << ' -Wall' + gen.cflags << ' -DDEBUG' + + # Make sure we have the ODE library and header available + trace "checking for sys/param.h" + gen.include_header( "sys/param.h" ) or + fail "Can't find the sys/param.h header." + + trace "checking for sys/jail.h" + gen.include_header( "sys/jail.h" ) or + fail "Can't find the sys/jail.h header." + + gen.include_library( "c", "jail_attach" ) or + fail "Can't find jail_attach in the stdlib." + end + end +end +CLOBBER.include( EXTDIR + 'mkrf.log' ) + + +desc "Build the C extension" +task :build => EXT_RAKEFILE.to_s do + Dir.chdir( EXTDIR ) do + sh 'rake' + end +end + + +task :clean do + if EXT_RAKEFILE.exist? + Dir.chdir( EXTDIR ) do + sh 'rake', 'clean' + end + end +end + +task :clobber do + if EXT_RAKEFILE.exist? + Dir.chdir( EXTDIR ) do + sh 'rake', 'clobber' + end + end +end +CLOBBER.include( EXT_RAKEFILE ) +