summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--Makefile.in6
-rw-r--r--ext/extmk.rb43
-rw-r--r--lib/mkmf.rb5
-rw-r--r--mkconfig.rb6
-rw-r--r--win32/Makefile.sub5
-rw-r--r--win32/mkexports.rb4
-rw-r--r--win32/resource.rb10
8 files changed, 58 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 5851770aee..83b341cd20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Sat Sep 9 04:47:45 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * Makefile.in, win32/Makefile.sub (MINIRUBY): append MINIRUBYOPT.
+
+ * mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress
+ warnings with $VERBOSE.
+
+ * win32/resource.rb: only file which has more than one icon is DLL.
+
Fri Sep 8 16:53:30 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* string.c (str_alloc): should allocate a String object, even when
diff --git a/Makefile.in b/Makefile.in
index cdc1f62443..8f45fdb9ce 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -33,8 +33,8 @@ RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
empty =
OUTFLAG = @OUTFLAG@$(empty)
-CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@
-XCFLAGS = -I. -I$(srcdir)
+CFLAGS = @CFLAGS@ @ARCH_FLAG@
+XCFLAGS = -I. -I$(srcdir) @XCFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
EXTLDFLAGS =
@@ -53,7 +53,7 @@ RUBY_SO_NAME=@RUBY_SO_NAME@
EXEEXT = @EXEEXT@
PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
RUBY = $(RUBY_INSTALL_NAME)
-MINIRUBY = @MINIRUBY@
+MINIRUBY = @MINIRUBY@ $(MINIRUBYOPT)
RUNRUBY = @RUNRUBY@
#### End of system configuration section. ####
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 2e17d05959..9627f09adb 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -1,13 +1,19 @@
#! /usr/local/bin/ruby
# -*- ruby -*-
+$extension = nil
+$extstatic = nil
$force_static = nil
$install = nil
$destdir = nil
+$dryrun = false
$clean = nil
$nodynamic = nil
$extinit = nil
$extobjs = nil
+$extflags = ""
+$extlibs = nil
+$extpath = nil
$ignore = nil
$message = nil
@@ -79,6 +85,8 @@ def extract_makefile(makefile, keep = true)
s.sub!(/ *#{Regexp.quote($LIBS)}$/, "")
$libs = s
end
+ $objs = (m[/^OBJS[ \t]*=[ \t](.*)/, 1] || "").split
+ $srcs = (m[/^SRCS[ \t]*=[ \t](.*)/, 1] || "").split
$LOCAL_LIBS = m[/^LOCAL_LIBS[ \t]*=[ \t]*(.*)/, 1] || ""
$LIBPATH = Shellwords.shellwords(m[/^libpath[ \t]*=[ \t]*(.*)/, 1] || "") - %w[$(libdir) $(topdir)]
true
@@ -113,6 +121,8 @@ def extmake(target)
$mdir = target
$srcdir = File.join($top_srcdir, "ext", $mdir)
$preload = nil
+ $objs = ""
+ $srcs = ""
$compiled[target] = false
makefile = "./Makefile"
ok = File.exist?(makefile)
@@ -128,7 +138,7 @@ def extmake(target)
ok &&= extract_makefile(makefile)
if (($extconf_h && !File.exist?($extconf_h)) ||
!(t = modified?(makefile, MTIMES)) ||
- %W"#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb #{$srcdir}/depend".any? {|f| modified?(f, [t])})
+ ["#{$srcdir}/makefile.rb", "#{$srcdir}/extconf.rb", "#{$srcdir}/depend"].any? {|f| modified?(f, [t])})
then
ok = false
init_mkmf
@@ -155,7 +165,7 @@ def extmake(target)
ok = yield(ok) if block_given?
unless ok
open(makefile, "w") do |f|
- f.print *dummy_makefile(CONFIG["srcdir"])
+ f.print(*dummy_makefile(CONFIG["srcdir"]))
end
return true
end
@@ -420,9 +430,13 @@ if $ignore
exit
end
-if $extlist.size > 0
- $extinit ||= ""
- $extobjs ||= ""
+$extinit ||= ""
+$extobjs ||= ""
+$extpath ||= []
+$extflags ||= ""
+$extlibs ||= []
+unless $extlist.empty?
+ $extinit << "\n" unless $extinit.empty?
list = $extlist.dup
built = []
while e = list.shift
@@ -436,16 +450,23 @@ if $extlist.size > 0
end
f = format("%s/%s.%s", s, i, $LIBEXT)
if File.exist?(f)
- $extinit += "\tinit(Init_#{i}, \"#{t}.so\");\n"
- $extobjs += "ext/#{f} "
+ $extinit << " init(Init_#{i}, \"#{t}.so\");\n"
+ $extobjs << "ext/#{f} "
built << t
end
end
src = %{\
-extern char *ruby_sourcefile, *rb_source_filename();
-#define init(func, name) (ruby_sourcefile = src = rb_source_filename(name), func(), rb_provide(src))
-void Init_ext() {\n\tchar* src;\n#$extinit}
+#include "ruby.h"
+
+#define init(func, name) { \
+ void func _((void)); \
+ ruby_sourcefile = src = rb_source_filename(name); \
+ func(); \
+ rb_provide(src); \
+}
+
+void Init_ext _((void))\n{\n char *src;#$extinit}
}
if !modified?(extinit.c, MTIMES) || IO.read(extinit.c) != src
open(extinit.c, "w") {|f| f.print src}
@@ -464,7 +485,7 @@ void Init_ext() {\n\tchar* src;\n#$extinit}
].map {|n, v|
"#{n}=#{v}" if v and !(v = v.strip).empty?
}.compact
- puts conf
+ puts(*conf)
$stdout.flush
$mflags.concat(conf)
else
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index e336b6ecd5..e29e43c4d7 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1172,6 +1172,7 @@ def create_makefile(target, srcprefix = nil)
elsif !(srcs = $srcs)
srcs = $objs.collect {|obj| obj.sub(/\.o\z/, '.c')}
end
+ $srcs = srcs
for i in $objs
i.sub!(/\.o\z/, ".#{$OBJEXT}")
end
@@ -1205,7 +1206,7 @@ def create_makefile(target, srcprefix = nil)
dllib = target ? "$(TARGET).#{CONFIG['DLEXT']}" : ""
staticlib = target ? "$(TARGET).#$LIBEXT" : ""
mfile = open("Makefile", "wb")
- mfile.print *configuration(srcprefix)
+ mfile.print(*configuration(srcprefix))
mfile.print %{
libpath = #{$LIBPATH.join(" ")}
LIBPATH = #{libpath}
@@ -1390,7 +1391,7 @@ site-install-rb: install-rb
unless suffixes.empty?
mfile.print ".SUFFIXES: .", suffixes.uniq.join(" ."), "\n\n"
end
- mfile.print *depout.flatten
+ mfile.print(*depout.flatten)
else
headers = %w[ruby.h defines.h]
if RULE_SUBST
diff --git a/mkconfig.rb b/mkconfig.rb
index c0ebe96e7e..c4649e9c1c 100644
--- a/mkconfig.rb
+++ b/mkconfig.rb
@@ -41,7 +41,7 @@ File.foreach "config.status" do |line|
if /^s([%,])@(\w+)@\1(?:\|\#_!!_\#\|)?(.*)\1/ =~ line
name = $2
val = $3.gsub(/\\(?=,)/, '')
- next if /^(?:ac_.*|DEFS|configure_input)$/ =~ name
+ next if /^(?:ac_.*|DEFS|configure_input|(?:top_)?srcdir)$/ =~ name
next if /^\$\(ac_\w+\)$/ =~ val
next if /^\$\{ac_\w+\}$/ =~ val
next if /^\$ac_\w+$/ =~ val
@@ -106,8 +106,8 @@ if $so_name
v_fast << " CONFIG[\"RUBY_SO_NAME\"] = \"" + $so_name + "\"\n"
end
-print *v_fast
-print *v_others
+print(*v_fast)
+print(*v_others)
print <<EOS
CONFIG["ruby_version"] = "$(MAJOR).$(MINOR)"
CONFIG["rubylibdir"] = "$(libdir)/ruby/$(ruby_version)"
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 4fa86903f9..cbf6378c37 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -166,7 +166,7 @@ EXEEXT = .exe
PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)
RUBYDEF = $(RUBY_SO_NAME).def
-MINIRUBY = .\miniruby$(EXEEXT)
+MINIRUBY = .\miniruby$(EXEEXT) $(MINIRUBYOPT)
RUNRUBY = .\ruby$(EXEEXT) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --
!if !defined(STACK)
@@ -211,9 +211,6 @@ config.status: $(CONFIG_H)
$(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub
@echo Creating config.h
-!if exist(config.h)
- @copy config.h config.h.old > nul
-!endif
@$(COMSPEC) /C $(srcdir:/=\)\win32\ifchange.bat config.h <<
#if _MSC_VER != $(MSC_VER)
#error MSC version unmatch
diff --git a/win32/mkexports.rb b/win32/mkexports.rb
index 69131da3df..e92aae0422 100644
--- a/win32/mkexports.rb
+++ b/win32/mkexports.rb
@@ -1,5 +1,7 @@
#!./miniruby -s
+$name = $library = $description = nil
+
module RbConfig
autoload :CONFIG, "rbconfig"
end
@@ -130,5 +132,5 @@ end
END {
exports = Exports.extract(ARGV)
- Exports.output {|f| f.puts exports}
+ Exports.output {|f| f.puts(*exports)}
}
diff --git a/win32/resource.rb b/win32/resource.rb
index e8c3ed88c7..cb62fb97c4 100644
--- a/win32/resource.rb
+++ b/win32/resource.rb
@@ -29,16 +29,14 @@ else
end
ruby_icon = rubyw_icon = nil
-[$ruby_name, 'ruby'].each do |i|
+[$ruby_name, 'ruby'].find do |i|
if i = icons[i]
ruby_icon = "1 ICON DISCARDABLE "+i.dump+"\n"
- break
end
end
-[$rubyw_name, 'rubyw'].each do |i|
+[$rubyw_name, 'rubyw'].find do |i|
if i = icons[i]
rubyw_icon = "1 ICON DISCARDABLE "+i.dump+"\n"
- break
end
end
dll_icons = []
@@ -49,7 +47,7 @@ end
[ # base name extension file type desc, icons
[$ruby_name, CONFIG["EXEEXT"], 'VFT_APP', 'CUI', ruby_icon],
[$rubyw_name, CONFIG["EXEEXT"], 'VFT_APP', 'GUI', rubyw_icon || ruby_icon],
- [$so_name, '.dll', 'VFT_DLL', 'DLL', dll_icons],
+ [$so_name, '.dll', 'VFT_DLL', 'DLL', dll_icons.join],
].each do |base, ext, type, desc, icons|
open(base + '.rc', "w") { |f|
f.binmode if /mingw/ =~ RUBY_PLATFORM
@@ -60,7 +58,7 @@ end
#include <winver.h>
#endif
-#{icons ? icons.join : ''}
+#{icons || ''}
VS_VERSION_INFO VERSIONINFO
FILEVERSION #{fversion}
PRODUCTVERSION #{fversion}