[macruby-changes] [4306] MacRuby/trunk/rakelib/builder

source_changes at macosforge.org source_changes at macosforge.org
Tue Jun 29 18:31:12 PDT 2010


Revision: 4306
          http://trac.macosforge.org/projects/ruby/changeset/4306
Author:   lsansonetti at apple.com
Date:     2010-06-29 18:31:12 -0700 (Tue, 29 Jun 2010)
Log Message:
-----------
make builder config more customizable

Modified Paths:
--------------
    MacRuby/trunk/rakelib/builder/builder.rb
    MacRuby/trunk/rakelib/builder/options.rb

Modified: MacRuby/trunk/rakelib/builder/builder.rb
===================================================================
--- MacRuby/trunk/rakelib/builder/builder.rb	2010-06-30 00:15:05 UTC (rev 4305)
+++ MacRuby/trunk/rakelib/builder/builder.rb	2010-06-30 01:31:12 UTC (rev 4306)
@@ -50,10 +50,10 @@
         s = obj_source(obj)
         cc, flags = 
           case File.extname(s)
-            when '.c' then [CC, @config.cflags]
-            when '.cpp' then [CXX, @config.cxxflags]
-            when '.m' then [CC, @config.objc_cflags]
-            when '.mm' then [CXX, @config.cxxflags + ' ' + @config.objc_cflags]
+            when '.c' then [@config.CC, @config.cflags]
+            when '.cpp' then [@config.CXX, @config.cxxflags]
+            when '.m' then [@config.CC, @config.objc_cflags]
+            when '.mm' then [@config.CXX, @config.cxxflags + ' ' + @config.objc_cflags]
           end
         if f = @config.objs_cflags[obj]
           flags += " #{f}"

Modified: MacRuby/trunk/rakelib/builder/options.rb
===================================================================
--- MacRuby/trunk/rakelib/builder/options.rb	2010-06-30 00:15:05 UTC (rev 4305)
+++ MacRuby/trunk/rakelib/builder/options.rb	2010-06-30 01:31:12 UTC (rev 4306)
@@ -142,15 +142,20 @@
 
 class BuilderConfig
   attr_reader :objs, :archs, :cflags, :cxxflags, :objc_cflags, :ldflags,
-    :objsdir, :objs_cflags, :dldflags
+    :objsdir, :objs_cflags, :dldflags, :CC, :CXX
 
   def initialize(opt)
+    @CC = (opt.delete(:CC) || CC)
+    @CXX = (opt.delete(:CXX) || CXX)
     @objs = (opt.delete(:objs) || OBJS)
     @archs = (opt.delete(:archs) || ARCHS)
+    sdk = opt.delete(:sdk)
+    has_libauto = sdk ? File.exist?("#{sdk}/usr/lib/libauto.dylib") : true
     archflags = archs.map { |x| "-arch #{x}" }.join(' ')
     @cflags = "-std=c99 -I. -I./include -fno-common -pipe -g -Wall -fexceptions -O#{OPTZ_LEVEL} -Wno-deprecated-declarations -Werror #{archflags}"
     @cxxflags = "-I. -I./include -g -Wall -Wno-deprecated-declarations -Werror #{archflags}"
-    @ldflags = '-lpthread -ldl -lxml2 -lobjc -lauto -licucore -framework Foundation'
+    @ldflags = '-lpthread -ldl -lxml2 -lobjc -licucore -framework Foundation'
+    @ldflags << " -lauto" if has_libauto
     if opt.delete(:static)
       @cflags << ' -DMACRUBY_STATIC'
       @cxxflags << ' -DMACRUBY_STATIC'
@@ -160,13 +165,23 @@
       @cxxflags << ' -DLLVM_TOT' if ENV['LLVM_TOT']
       @ldflags << ' ' << `#{LLVM_CONFIG} --ldflags --libs #{LLVM_MODULES}`.strip.gsub(/\n/, '')
     end
+    unless has_libauto
+      @cflags << ' -DNO_LIBAUTO'
+      @cxxflags << ' -DNO_LIBAUTO'
+    end
     @cxxflags << " -fno-rtti" unless @cxxflags.index("-fno-rtti")
     @dldflags = "-dynamiclib -undefined suppress -flat_namespace -install_name #{INSTALL_NAME} -current_version #{MACRUBY_VERSION} -compatibility_version #{MACRUBY_VERSION} -exported_symbols_list #{EXPORTED_SYMBOLS_LIST}"
     if `sw_vers -productVersion`.to_f <= 10.6
       @cflags << ' -I./icu-1060'
       @cxxflags << ' -I./icu-1060'
     end
-    @objc_cflags = cflags + ' -fobjc-gc-only'
+    if sdk
+      sdk_flags = "--sysroot=#{sdk}"
+      @cflags << " #{sdk_flags}"
+      @cxxflags << " #{sdk_flags}"
+    end
+    @objc_cflags = cflags.dup
+    @objc_cflags << ' -fobjc-gc-only' if has_libauto
     @objs_cflags = OBJS_CFLAGS
     @objsdir = opt.delete(:objsdir)
   end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100629/0a98a456/attachment.html>


More information about the macruby-changes mailing list