Sorry, please ignore what I wrote about both Rakefile and mkrf_conf in the filename, I just noticed that the RakeBuilder is invoked when the filename contains *either* Rakefile or mkrf_conf.
Yaohan Chen On Wednesday 18 June 2008 11:59:59 pm Yaohan Chen wrote: > Hi, > > I'm working on a project which compiles and uses some platform dependent > files, but they are not built from C files. The method to generate those > files is already in the project's Rakefile as a task, so I wanted to use > gem's Rakefile extension builder. I have > > spec.extensions << "Rakefile.ext" > > But the extension building phase fails saying Rakefile cannot be found. > Looking lib/rubygems/ext/rake_builder.rb lines 11-21, > > def self.build(extension, directory, dest_path, results) > if File.basename(extension) =~ /mkrf_conf/i then > cmd = "#{Gem.ruby} #{File.basename extension}" > cmd << " #{ARGV.join " "}" unless ARGV.empty? > run cmd, results > end > > cmd = ENV['rake'] || 'rake' > cmd << " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path} > > run cmd, results > > It seems that if the Rakefile contains mkrf_conf in the basename (btw I see > some mkrf_conf.rb files on the web, but none with both Rakefile and > mkmf_conf in its name) then it is treated as a "configure script", it is > executed and afterwards a Rakefile is expected to be created. Otherwise, > the file must be named Rakefile. If this is by design, there is a usability > problem in accepting any filename containing Rakefile in spec.extensions. > > There is also a problem with requiring the file to be called Rakefile. The > project already has a Rakefile containing various tasks such as gem, and a > task for building the extension. It doesn't make sense to have the default > rule build the extension, which is why I am trying to use a different > Rakefile. But if it's possible to name the task to execute, along with the > Rakefile in specification.extensions, I would have no problem. > > Finally, is the Rakefile expected to both build and install the extensions > in its default task? > > Thank you in advance. > > > Yaohan Chen _______________________________________________ Rubygems-developers mailing list Rubygems-developers@rubyforge.org http://rubyforge.org/mailman/listinfo/rubygems-developers