[macruby-changes] [1919] MacRuby/branches/experimental

source_changes at macosforge.org source_changes at macosforge.org
Tue Jun 23 13:22:25 PDT 2009


Revision: 1919
          http://trac.macosforge.org/projects/ruby/changeset/1919
Author:   pthomson at apple.com
Date:     2009-06-23 13:22:25 -0700 (Tue, 23 Jun 2009)
Log Message:
-----------
Courtesy of Jordan Breeding, a patch to build with Clang and llvm-gcc. To do so, build with 'rake use_clang=true miniruby'.

Modified Paths:
--------------
    MacRuby/branches/experimental/rakelib/builder.rb
    MacRuby/branches/experimental/signal.c
    MacRuby/branches/experimental/variable.c

Modified: MacRuby/branches/experimental/rakelib/builder.rb
===================================================================
--- MacRuby/branches/experimental/rakelib/builder.rb	2009-06-23 04:22:48 UTC (rev 1918)
+++ MacRuby/branches/experimental/rakelib/builder.rb	2009-06-23 20:22:25 UTC (rev 1919)
@@ -19,6 +19,7 @@
   end
 end
 
+USE_CLANG = do_option('use_clang', false)
 RUBY_INSTALL_NAME = do_option('ruby_install_name', 'macruby')
 RUBY_SO_NAME = do_option('ruby_so_name', RUBY_INSTALL_NAME)
 ARCHS = 
@@ -84,7 +85,14 @@
 INSTALL_NAME = File.join(FRAMEWORK_USR_LIB, 'lib' + RUBY_SO_NAME + '.dylib')
 ARCHFLAGS = ARCHS.map { |a| '-arch ' + a }.join(' ')
 LLVM_MODULES = "core jit nativecodegen interpreter bitwriter"
-CFLAGS = "-I. -I./include -I./onig -I/usr/include/libxml2 #{ARCHFLAGS} -fno-common -pipe -O3 -g -Wall -fexceptions"
+if (USE_CLANG) and (`sw_vers -productVersion`.strip >= '10.6')
+  CC = '/usr/bin/clang'
+  CPP = '/usr/bin/llvm-g++-4.2'
+elsif 
+  CC = '/usr/bin/gcc'
+  CPP = '/usr/bin/g++'
+end
+CFLAGS = "-I. -I./include -I./onig -I./giants/libDGiants  -I/usr/include/libxml2 #{ARCHFLAGS} -fno-common -pipe -O3 -g -Wall -fexceptions"
 CFLAGS << " -Wno-parentheses -Wno-deprecated-declarations -Werror" if NO_WARN_BUILD
 OBJC_CFLAGS = CFLAGS + " -fobjc-gc-only"
 CXXFLAGS = `#{LLVM_CONFIG} --cxxflags #{LLVM_MODULES}`.strip
@@ -130,9 +138,9 @@
         s = obj_source(obj)
         cc, flags = 
           case File.extname(s)
-            when '.c' then ['/usr/bin/gcc', @cflags]
-            when '.cpp' then ['/usr/bin/g++', @cxxflags]
-            when '.m' then ['/usr/bin/gcc', @objc_cflags]
+            when '.c' then [CC, @cflags]
+            when '.cpp' then [CPP, @cxxflags]
+            when '.m' then [CC, @objc_cflags]
           end
         sh("#{cc} #{flags} -c #{s} -o #{obj}.o")
       end
@@ -166,7 +174,7 @@
     objs ||= @objs
     ldflags ||= @ldflags
     if should_link?(name, objs)
-      sh("/usr/bin/g++ #{@cflags} #{objs.map { |x| x + '.o' }.join(' ') } #{ldflags} #{args}")
+      sh("#{CPP} #{@cflags} #{objs.map { |x| x + '.o' }.join(' ') } #{ldflags} #{args}")
     end
   end
 

Modified: MacRuby/branches/experimental/signal.c
===================================================================
--- MacRuby/branches/experimental/signal.c	2009-06-23 04:22:48 UTC (rev 1918)
+++ MacRuby/branches/experimental/signal.c	2009-06-23 20:22:25 UTC (rev 1919)
@@ -416,8 +416,9 @@
     int i;
 
     for (i=0; i<NSIG; i++) {
-	if (trap_list[i].cmd)
+	if (trap_list[i].cmd) {
 	    rb_gc_mark(trap_list[i].cmd);
+	}
     }
 #endif /* MACOS_UNUSE_SIGNAL */
 }

Modified: MacRuby/branches/experimental/variable.c
===================================================================
--- MacRuby/branches/experimental/variable.c	2009-06-23 04:22:48 UTC (rev 1918)
+++ MacRuby/branches/experimental/variable.c	2009-06-23 20:22:25 UTC (rev 1919)
@@ -437,7 +437,9 @@
 static void
 val_marker(VALUE data)
 {
-    if (data) rb_gc_mark_maybe(data);
+    if (data) {
+		rb_gc_mark_maybe(data);
+	}
 }
 
 static VALUE
@@ -456,7 +458,9 @@
 static void
 var_marker(VALUE *var)
 {
-    if (var) rb_gc_mark_maybe(*var);
+    if (var) {
+		rb_gc_mark_maybe(*var);
+	}
 }
 
 static void
@@ -474,7 +478,10 @@
     (*var->marker)(var->data);
     trace = var->trace;
     while (trace) {
-	if (trace->data) rb_gc_mark_maybe(trace->data);
+	if (trace->data) 
+	{
+		rb_gc_mark_maybe(trace->data);
+	}
 	trace = trace->next;
     }
     return ST_CONTINUE;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090623/022de773/attachment.html>


More information about the macruby-changes mailing list