[macruby-changes] [3340] MacRuby/trunk/rakelib/builder.rake
source_changes at macosforge.org
source_changes at macosforge.org
Tue Jan 26 11:49:02 PST 2010
Revision: 3340
http://trac.macosforge.org/projects/ruby/changeset/3340
Author: eloy.de.enige at gmail.com
Date: 2010-01-26 11:48:59 -0800 (Tue, 26 Jan 2010)
Log Message:
-----------
Allow the extensions to be compiled parallel.
Modified Paths:
--------------
MacRuby/trunk/rakelib/builder.rake
Modified: MacRuby/trunk/rakelib/builder.rake
===================================================================
--- MacRuby/trunk/rakelib/builder.rake 2010-01-26 19:48:49 UTC (rev 3339)
+++ MacRuby/trunk/rakelib/builder.rake 2010-01-26 19:48:59 UTC (rev 3340)
@@ -337,28 +337,31 @@
EXTENSIONS = ['ripper', 'digest', 'etc', 'readline', 'libyaml', 'fcntl', 'socket', 'zlib', 'bigdecimal', 'openssl', 'json'].sort
def perform_extensions_target(target)
+ commands = []
EXTENSIONS.map { |x| File.join('ext', x) }.each do |ext_dir|
Dir.glob(File.join(ext_dir, '**/extconf.rb')) do |p|
+ cmd = []
dir = File.dirname(p)
Dir.chdir(dir) do
- $stderr.puts "cd #{dir}"
srcdir = File.join(*dir.split(File::SEPARATOR).map { |x| '..' })
next if target == :clean and !File.exist?('Makefile')
if !File.exist?('Makefile') or File.mtime('extconf.rb') > File.mtime('Makefile')
- sh "#{srcdir}/miniruby -I#{srcdir} -I#{srcdir}/lib -r rbconfig -e \"RbConfig::CONFIG['libdir'] = '#{srcdir}'; require './extconf.rb'\""
+ cmd << "cd #{dir} && #{srcdir}/miniruby -I#{srcdir} -I#{srcdir}/lib -r rbconfig -e \"RbConfig::CONFIG['libdir'] = '#{srcdir}'; require './extconf.rb'\""
end
- line = "/usr/bin/make top_srcdir=#{srcdir} ruby=\"#{srcdir}/miniruby -I#{srcdir} -I#{srcdir}/lib\" extout=#{srcdir}/.ext hdrdir=#{srcdir}/include arch_hdrdir=#{srcdir}/include"
+ line = "cd #{dir} && /usr/bin/make top_srcdir=#{srcdir} ruby=\"#{srcdir}/miniruby -I#{srcdir} -I#{srcdir}/lib\" extout=#{srcdir}/.ext hdrdir=#{srcdir}/include arch_hdrdir=#{srcdir}/include"
case target
when :all
line << " libdir=#{srcdir}"
else
line << " #{target}"
end
- sh line
- rm_f 'Makefile' if target == :clean
+ cmd << line
+ cmd << 'rm -f Makefile' if target == :clean
+ commands << cmd
end
end
end
+ Builder.parallel_execute(commands)
end
desc "Build extensions"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100126/f633f6dc/attachment.html>
More information about the macruby-changes
mailing list