[macruby-changes] [275] MacRuby/trunk/Rakefile

source_changes at macosforge.org source_changes at macosforge.org
Wed Jun 11 15:22:38 PDT 2008


Revision: 275
          http://trac.macosforge.org/projects/ruby/changeset/275
Author:   lsansonetti at apple.com
Date:     2008-06-11 15:22:38 -0700 (Wed, 11 Jun 2008)

Log Message:
-----------
build fixes

Modified Paths:
--------------
    MacRuby/trunk/Rakefile

Modified: MacRuby/trunk/Rakefile
===================================================================
--- MacRuby/trunk/Rakefile	2008-06-11 21:05:47 UTC (rev 274)
+++ MacRuby/trunk/Rakefile	2008-06-11 22:22:38 UTC (rev 275)
@@ -65,8 +65,9 @@
     @header_paths = {}
   end
 
-  def build
-    OBJS.each do |obj| 
+  def build(objs=nil)
+    objs ||= @objs
+    objs.each do |obj| 
       if should_build?(obj) 
         s = obj_source(obj)
         flags = File.extname(s) == '.m' ? @objc_cflags : @cflags
@@ -222,6 +223,25 @@
   if !File.exist?('prelude.c')
     FileUtils.touch('prelude.c') # create empty file nevertheless
   end
+  if !File.exist?('parse.c') or File.mtime('parse.y') > File.mtime('parse.c')
+    exec_line("/usr/bin/bison -o y.tab.c parse.y")
+    exec_line("/usr/bin/sed -f ./tool/ytab.sed -e \"/^#/s!y\.tab\.c!parse.c!\" y.tab.c > parse.c.new")
+    if !File.exist?('parse.c') or File.read('parse.c.new') != File.read('parse.c')
+      FileUtils.mv('parse.c.new', 'parse.c')
+    else
+      FileUtils.rm('parse.c.new')
+    end
+  end
+  if !File.exist?('lex.c') or File.read('lex.c') != File.read('lex.c.blt')
+    FileUtils.cp('lex.c.blt', 'lex.c')
+  end
+  inc_to_gen = %w{opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc vmtc.inc vm.inc}.select { |inc| !File.exist?(inc) or File.mtime("template/#{inc}.tmpl") > File.mtime(inc) }
+  unless inc_to_gen.empty?
+    exec_line("/usr/bin/ruby -Ks tool/insns2vm.rb #{inc_to_gen.join(' ')}")
+  end
+  if !File.exist?('node_name.inc') or File.mtime('include/ruby/node.h') > File.mtime('node_name.inc')
+    exec_line("/usr/bin/ruby -n tool/node_name.rb include/ruby/node.h > node_name.inc")
+  end
   $builder.build
 end
 
@@ -422,7 +442,7 @@
 RUBY_FRAMEWORK = true
 RUBY_FRAMEWORK_VERSION = RbConfig::CONFIG['ruby_version']
 EOS
-  if File.read('rbconfig.rb') != rbconfig
+  if !File.exist?('rbconfig.rb') or File.read('rbconfig.rb') != rbconfig
     File.open('rbconfig.rb', 'w') { |io| io.print rbconfig }
   end
 end
@@ -431,6 +451,7 @@
   exec_line("./miniruby -I. -I./lib -rrbconfig tool/compile_prelude.rb prelude.rb gem_prelude.rb prelude.c.new")
   if !File.exist?('prelude.c') or File.read('prelude.c') != File.read('prelude.c.new')
     FileUtils.mv('prelude.c.new', 'prelude.c')
+    $builder.build(['prelude'])
   else
     FileUtils.rm('prelude.c.new')
   end
@@ -470,7 +491,7 @@
 
 task :clean_local do
   $builder.clean
-  FileUtils.rm_f(INSTALLED_LIST)
+  ['parse.c', 'lex.c', INSTALLED_LIST].each { |x| FileUtils.rm_f(x) }
 end
 
 task :clean_ext do

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080611/f71e8f36/attachment.htm 


More information about the macruby-changes mailing list