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

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/

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