[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