[前][次][番号順一覧][スレッド一覧]

ruby-changes:12702

From: nobu <ko1@a...>
Date: Thu, 6 Aug 2009 13:02:43 +0900 (JST)
Subject: [ruby-changes:12702] Ruby:r24418 (trunk): * lib/mkmf.rb (check_sizeof): added optional compiler option

nobu	2009-08-06 13:00:38 +0900 (Thu, 06 Aug 2009)

  New Revision: 24418

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24418

  Log:
    * lib/mkmf.rb (check_sizeof): added optional compiler option
      argument.  [ruby-core:24785]
    * lib/mkmf.rb (create_makefile): suppressed shadowing outer local
      variable warnings.

  Added directories:
    trunk/test/mkmf/
  Added files:
    trunk/test/mkmf/test_sizeof.rb
  Modified files:
    trunk/ChangeLog
    trunk/lib/mkmf.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24417)
+++ ChangeLog	(revision 24418)
@@ -1,3 +1,11 @@
+Thu Aug  6 13:00:30 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/mkmf.rb (check_sizeof): added optional compiler option
+	  argument.  [ruby-core:24785]
+
+	* lib/mkmf.rb (create_makefile): suppressed shadowing outer local
+	  variable warnings.
+
 Thu Aug  6 12:05:06 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/test/unit/testcase.rb (Test::Unit): removes silly TestCase
Index: lib/mkmf.rb
===================================================================
--- lib/mkmf.rb	(revision 24417)
+++ lib/mkmf.rb	(revision 24418)
@@ -155,7 +155,9 @@
 topdir = File.dirname(libdir = File.dirname(__FILE__))
 extdir = File.expand_path("ext", topdir)
 path = File.expand_path($0)
-$extmk = path[0, topdir.size+1] == topdir+"/" && %r"\A(ext|enc|tool)\z" =~ File.dirname(path[topdir.size+1..-1])
+$extmk = path[0, topdir.size+1] == topdir+"/"
+$extmk &&= %r"\A(?:ext|enc|tool|test(?:/.+))\z" =~ File.dirname(path[topdir.size+1..-1])
+$extmk &&= true
 if not $extmk and File.exist?(($hdrdir = RbConfig::CONFIG["rubyhdrdir"]) + "/ruby/ruby.h")
   $topdir = $hdrdir
   $top_srcdir = $hdrdir
@@ -990,7 +992,7 @@
 # For example, if check_sizeof('mystruct') returned 12, then the
 # SIZEOF_MYSTRUCT=12 preprocessor macro would be passed to the compiler.
 #
-def check_sizeof(type, headers = nil, &b)
+def check_sizeof(type, headers = nil, opts = "", &b)
   typename, member = type.split('.', 2)
   prelude = cpp_include(headers).split(/$/)
   prelude << "typedef #{typename} rbcv_typedef_;\n"
@@ -1812,19 +1814,19 @@
 
   return unless target
 
-  mfile.puts SRC_EXT.collect {|ext| ".path.#{ext} = $(VPATH)"} if $nmake == ?b
+  mfile.puts SRC_EXT.collect {|e| ".path.#{e} = $(VPATH)"} if $nmake == ?b
   mfile.print ".SUFFIXES: .#{SRC_EXT.join(' .')} .#{$OBJEXT}\n"
   mfile.print "\n"
 
-  CXX_EXT.each do |ext|
+  CXX_EXT.each do |e|
     COMPILE_RULES.each do |rule|
-      mfile.printf(rule, ext, $OBJEXT)
+      mfile.printf(rule, e, $OBJEXT)
       mfile.printf("\n\t%s\n\n", COMPILE_CXX)
     end
   end
-  %w[c].each do |ext|
+  %w[c].each do |e|
     COMPILE_RULES.each do |rule|
-      mfile.printf(rule, ext, $OBJEXT)
+      mfile.printf(rule, e, $OBJEXT)
       mfile.printf("\n\t%s\n\n", COMPILE_C)
     end
   end
Index: test/mkmf/test_sizeof.rb
===================================================================
--- test/mkmf/test_sizeof.rb	(revision 0)
+++ test/mkmf/test_sizeof.rb	(revision 24418)
@@ -0,0 +1,27 @@
+require 'test/unit'
+require 'mkmf'
+require 'tmpdir'
+
+$extout = '$(topdir)/'+RbConfig::CONFIG["EXTOUT"]
+RbConfig::CONFIG['topdir'] = CONFIG['topdir'] = File.expand_path(CONFIG['topdir'])
+RbConfig::CONFIG["extout"] = CONFIG["extout"] = $extout
+$extout_prefix = "$(extout)$(target_prefix)/"
+
+class TestMkmf < Test::Unit::TestCase
+  def setup
+    @tmpdir = Dir.mktmpdir
+    @mkmfobj = Object.new
+  end
+  def mkmf(*args, &block)
+    @mkmfobj.instance_eval(*args, &block)
+  end
+
+  def test_sizeof
+    Dir.chdir(@tmpdir) do
+      open("confdefs.h", "w") {|f|
+        f.puts "typedef struct {char x;} test1_t;"
+      }
+      mkmf {check_sizeof("test1_t", "confdefs.h")} rescue puts File.read("mkmf.log")
+    end
+  end
+end

Property changes on: test/mkmf/test_sizeof.rb
___________________________________________________________________
Name: svn:keywords
   + Author Id Revision
Name: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]