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 + + * 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 * 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 < 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 #endif -#{icons ? icons.join : ''} +#{icons || ''} VS_VERSION_INFO VERSIONINFO FILEVERSION #{fversion} PRODUCTVERSION #{fversion}