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/