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

ruby-changes:25194

From: shirosaki <ko1@a...>
Date: Wed, 17 Oct 2012 21:21:07 +0900 (JST)
Subject: [ruby-changes:25194] shirosaki:r37246 (trunk): extmk.rb: fix mingw make failure with make -jN

shirosaki	2012-10-17 21:20:57 +0900 (Wed, 17 Oct 2012)

  New Revision: 37246

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37246

  Log:
    extmk.rb: fix mingw make failure with make -jN
    
    * common.mk (WPROGRAM): need same dependencies as PROGRAM.
    
    * cygwin/GNUmakefile.in (uncommon.mk): move include position
      below WPROGRAM definition to be defined in uncommon.mk.
    
    * ext/extmk.rb (all, static): fix make rubyw.exe failure with make -jN.
      If make of ruby.exe and rubyw.exe run in parallel, link dll and link
      exe run in parallel, which causes link failure on mingw. To fix this,
      we make ruby.exe and rubyw.exe in one make process.
      [ruby-core:48007] [Bug #7165]

  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/cygwin/GNUmakefile.in
    trunk/ext/extmk.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 37245)
+++ ChangeLog	(revision 37246)
@@ -1,3 +1,16 @@
+Wed Oct 17 21:16:47 2012  Hiroshi Shirosaki  <h.shirosaki@g...>
+
+	* common.mk (WPROGRAM): need same dependencies as PROGRAM.
+
+	* cygwin/GNUmakefile.in (uncommon.mk): move include position
+	  below WPROGRAM definition to be defined in uncommon.mk.
+
+	* ext/extmk.rb (all, static): fix make rubyw.exe failure with make -jN.
+	  If make of ruby.exe and rubyw.exe run in parallel, link dll and link
+	  exe run in parallel, which causes link failure on mingw. To fix this,
+	  we make ruby.exe and rubyw.exe in one make process.
+	  [ruby-core:48007] [Bug #7165]
+
 Wed Oct 17 16:25:34 2012  Koichi Sasada  <ko1@a...>
 
 	* benchmark/bm_vm2_method_missing.rb: add a benchmark to measure
Index: common.mk
===================================================================
--- common.mk	(revision 37245)
+++ common.mk	(revision 37246)
@@ -212,7 +212,7 @@
 program: showflags $(PROGRAM)
 wprogram: showflags $(WPROGRAM)
 
-$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
+$(PROGRAM) $(WPROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
 
 $(LIBRUBY_A):	$(OBJS) $(MAINOBJ) $(DMYEXT) $(ARCHFILE)
 
Index: cygwin/GNUmakefile.in
===================================================================
--- cygwin/GNUmakefile.in	(revision 37245)
+++ cygwin/GNUmakefile.in	(revision 37246)
@@ -1,5 +1,4 @@
 include Makefile
--include uncommon.mk
 
 ENABLE_SHARED=@ENABLE_SHARED@
 DLLWRAP = @DLLWRAP@ --target=@target_os@ --driver-name="$(CC)"
@@ -35,6 +34,8 @@
 RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(DLL_BASE_NAME).rc
 RUBYDEF = $(DLL_BASE_NAME).def
 
+-include uncommon.mk
+
 ruby: $(PROGRAM)
 rubyw: $(WPROGRAM)
 stub: $(STUBPROGRAM)
Index: ext/extmk.rb
===================================================================
--- ext/extmk.rb	(revision 37245)
+++ ext/extmk.rb	(revision 37246)
@@ -656,13 +656,11 @@
       mf.puts "#{tgt}: $(extensions:/.=/#{tgt})"
     end
     mf.puts
-    mf.puts "all: #{rubies.join(' ')}"
-    mf.puts "static: #{rubies.join(' ')}"
     mf.puts "clean:\n\t-$(Q)$(RM) ext/extinit.#{$OBJEXT}"
     mf.puts "distclean:\n\t-$(Q)$(RM) ext/extinit.c"
     mf.puts
     mf.puts "#{rubies.join(' ')}: $(extensions:/.=/#{$force_static ? 'static' : 'all'})"
-    rubies.each do |tgt|
+    (["all static"] + rubies).each_with_index do |tgt, i|
       mf.print "#{tgt}:\n\t$(Q)$(MAKE) "
       mf.print "$(MFLAGS) "
       if enable_config("shared", $enable_shared)
@@ -671,7 +669,12 @@
       else
         mf.print %[EXTOBJS="$(EXTOBJS) $(ENCOBJS)" EXTLIBS="$(EXTLIBS)" ]
       end
-      mf.puts 'EXTLDFLAGS="$(EXTLDFLAGS)" $@'
+      mf.print 'EXTLDFLAGS="$(EXTLDFLAGS)" '
+      if i == 0
+        mf.puts rubies.join(' ')
+      else
+        mf.puts '$@'
+      end
     end
     mf.puts
     exec = config_string("exec") {|str| str + " "}

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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