ruby-changes:11254
From: nobu <ko1@a...>
Date: Tue, 10 Mar 2009 03:49:11 +0900 (JST)
Subject: [ruby-changes:11254] Ruby:r22863 (trunk): * ext/dl/callback/depend: fix for parallel build.
nobu 2009-03-10 03:48:34 +0900 (Tue, 10 Mar 2009) New Revision: 22863 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22863 Log: * ext/dl/callback/depend: fix for parallel build. * ext/dl/callback/extconf.rb: callback.h is no longer created. * ext/dl/callback/mkcallback.rb: creates main source first. Modified files: trunk/ChangeLog trunk/ext/dl/callback/depend trunk/ext/dl/callback/extconf.rb trunk/ext/dl/callback/mkcallback.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 22862) +++ ChangeLog (revision 22863) @@ -1,5 +1,11 @@ -Tue Mar 10 01:57:15 2009 Nobuyoshi Nakada <nobu@r...> +Tue Mar 10 03:48:27 2009 Nobuyoshi Nakada <nobu@r...> + * ext/dl/callback/depend: fix for parallel build. + + * ext/dl/callback/extconf.rb: callback.h is no longer created. + + * ext/dl/callback/mkcallback.rb: creates main source first. + * ext/dl/callback/extconf.rb ($distcleanfiles): added callback.c. Tue Mar 10 00:06:21 2009 Nobuyoshi Nakada <nobu@r...> Index: ext/dl/callback/depend =================================================================== --- ext/dl/callback/depend (revision 22862) +++ ext/dl/callback/depend (revision 22863) @@ -1,18 +1,10 @@ -callback.o: $(hdrdir)/ruby.h $(hdrdir)/io.h +$(OBJS): $(hdrdir)/ruby.h -callback-0.o: callback-0.c $(hdrdir)/ruby.h -callback-1.o: callback-1.c $(hdrdir)/ruby.h -callback-2.o: callback-2.c $(hdrdir)/ruby.h -callback-3.o: callback-3.c $(hdrdir)/ruby.h -callback-4.o: callback-4.c $(hdrdir)/ruby.h -callback-5.o: callback-5.c $(hdrdir)/ruby.h -callback-6.o: callback-6.c $(hdrdir)/ruby.h -callback-7.o: callback-7.c $(hdrdir)/ruby.h -callback-8.o: callback-8.c $(hdrdir)/ruby.h - callback-0.c callback-1.c callback-2.c \ callback-3.c callback-4.c callback-5.c \ callback-6.c callback-7.c callback-8.c \ + : callback.c + callback.c: $(srcdir)/mkcallback.rb $(srcdir)/../dl.h - @echo "generating callback.h" - @$(RUBY) $(srcdir)/mkcallback.rb $(srcdir)/../dl.h + @echo "generating callback.c" + @$(RUBY) $(srcdir)/mkcallback.rb -output=callback $(srcdir)/../dl.h Index: ext/dl/callback/mkcallback.rb =================================================================== --- ext/dl/callback/mkcallback.rb (revision 22862) +++ ext/dl/callback/mkcallback.rb (revision 22863) @@ -1,4 +1,6 @@ -$out = open("callback.c", "w") +#!ruby -s +$output ||= "callback" +$out = open("#{$output}.c", "w") $dl_h = ARGV[0] || "dl.h" @@ -157,10 +159,9 @@ end def gen_callback_file(ty) - filename = "callback-#{ty}.c" + filename = "#{$output}-#{ty}.c" initname = "rb_dl_init_callbacks_#{ty}" - open(filename, "w") {|f| - f.puts <<-EOS + body = <<-EOS #include "dl.h" extern VALUE rb_DLCdeclCallbackAddrs, rb_DLCdeclCallbackProcs; @@ -169,8 +170,8 @@ #endif extern ID rb_dl_cb_call; EOS - yield f - f.puts <<-EOS + yield body + body << <<-EOS void #{initname}() { @@ -182,12 +183,12 @@ #endif } EOS - } - initname + [filename, initname, body] end +callbacks = [] for ty in 0...MAX_DLTYPE - initname = gen_callback_file(ty) {|f| + filename, initname, body = gen_callback_file(ty) {|f| foreach_proc_entry do |calltype, proc_entry| for argc in 0...DLSTACK_SIZE for n in 0...MAX_CALLBACK @@ -197,6 +198,7 @@ end } $out << "void #{initname}();\n" + callbacks << [filename, body] end $out << (<<EOS) @@ -229,3 +231,8 @@ } } EOS +$out.close + +for filename, body in callbacks + open(filename, "wb") {|f| f.puts body} +end Index: ext/dl/callback/extconf.rb =================================================================== --- ext/dl/callback/extconf.rb (revision 22862) +++ ext/dl/callback/extconf.rb (revision 22863) @@ -5,7 +5,8 @@ callback_srcs = callbacks.map{|basename| "#{basename}.c"} callback_objs = callbacks.map{|basename| "#{basename}.o"} - $distcleanfiles += [ "callback.h", *callback_srcs ] + $distcleanfiles << '$(SRCS)' + $srcs = callback_srcs $objs = callback_objs $INCFLAGS << " -I$(srcdir)/.." -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/