mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/mkmf.rb (check_sizeof): added optional compiler option
argument. [ruby-core:24785] * lib/mkmf.rb (create_makefile): suppressed shadowing outer local variable warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d04b691b96
commit
c6ada1e7e0
3 changed files with 44 additions and 7 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Thu Aug 6 13:00:30 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* 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@ruby-lang.org>
|
Thu Aug 6 12:05:06 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* lib/test/unit/testcase.rb (Test::Unit): removes silly TestCase
|
* lib/test/unit/testcase.rb (Test::Unit): removes silly TestCase
|
||||||
|
|
16
lib/mkmf.rb
16
lib/mkmf.rb
|
@ -155,7 +155,9 @@ end
|
||||||
topdir = File.dirname(libdir = File.dirname(__FILE__))
|
topdir = File.dirname(libdir = File.dirname(__FILE__))
|
||||||
extdir = File.expand_path("ext", topdir)
|
extdir = File.expand_path("ext", topdir)
|
||||||
path = File.expand_path($0)
|
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")
|
if not $extmk and File.exist?(($hdrdir = RbConfig::CONFIG["rubyhdrdir"]) + "/ruby/ruby.h")
|
||||||
$topdir = $hdrdir
|
$topdir = $hdrdir
|
||||||
$top_srcdir = $hdrdir
|
$top_srcdir = $hdrdir
|
||||||
|
@ -990,7 +992,7 @@ end
|
||||||
# For example, if check_sizeof('mystruct') returned 12, then the
|
# For example, if check_sizeof('mystruct') returned 12, then the
|
||||||
# SIZEOF_MYSTRUCT=12 preprocessor macro would be passed to the compiler.
|
# 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)
|
typename, member = type.split('.', 2)
|
||||||
prelude = cpp_include(headers).split(/$/)
|
prelude = cpp_include(headers).split(/$/)
|
||||||
prelude << "typedef #{typename} rbcv_typedef_;\n"
|
prelude << "typedef #{typename} rbcv_typedef_;\n"
|
||||||
|
@ -1812,19 +1814,19 @@ site-install-rb: install-rb
|
||||||
|
|
||||||
return unless target
|
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 ".SUFFIXES: .#{SRC_EXT.join(' .')} .#{$OBJEXT}\n"
|
||||||
mfile.print "\n"
|
mfile.print "\n"
|
||||||
|
|
||||||
CXX_EXT.each do |ext|
|
CXX_EXT.each do |e|
|
||||||
COMPILE_RULES.each do |rule|
|
COMPILE_RULES.each do |rule|
|
||||||
mfile.printf(rule, ext, $OBJEXT)
|
mfile.printf(rule, e, $OBJEXT)
|
||||||
mfile.printf("\n\t%s\n\n", COMPILE_CXX)
|
mfile.printf("\n\t%s\n\n", COMPILE_CXX)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
%w[c].each do |ext|
|
%w[c].each do |e|
|
||||||
COMPILE_RULES.each do |rule|
|
COMPILE_RULES.each do |rule|
|
||||||
mfile.printf(rule, ext, $OBJEXT)
|
mfile.printf(rule, e, $OBJEXT)
|
||||||
mfile.printf("\n\t%s\n\n", COMPILE_C)
|
mfile.printf("\n\t%s\n\n", COMPILE_C)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
27
test/mkmf/test_sizeof.rb
Normal file
27
test/mkmf/test_sizeof.rb
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue