Skip to content

Commit

Permalink
extmk.rb: fix mingw make failure with make -jN
Browse files Browse the repository at this point in the history
* 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 ruby#7165]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
shirosaki committed Oct 17, 2012
1 parent aef5f90 commit 14d59c1
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
13 changes: 13 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
Wed Oct 17 21:16:47 2012 Hiroshi Shirosaki <[email protected]>

* 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 <[email protected]>

* benchmark/bm_vm2_method_missing.rb: add a benchmark to measure
Expand Down
2 changes: 1 addition & 1 deletion common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(srcdir)/tool/generic_erb.rb
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)

Expand Down
3 changes: 2 additions & 1 deletion cygwin/GNUmakefile.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include Makefile
-include uncommon.mk

ENABLE_SHARED=@ENABLE_SHARED@
DLLWRAP = @DLLWRAP@ --target=@target_os@ --driver-name="$(CC)"
Expand Down Expand Up @@ -35,6 +34,8 @@ EXTOBJS += $(if $(filter-out $(RUBYW_INSTALL_NAME),$(@:$(EXEEXT)=)),$(RUBY_INSTA
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)
Expand Down
11 changes: 7 additions & 4 deletions ext/extmk.rb
Original file line number Diff line number Diff line change
Expand Up @@ -656,13 +656,11 @@ def mf.macro(name, values, max = 70)
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)
Expand All @@ -671,7 +669,12 @@ def mf.macro(name, values, max = 70)
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 + " "}
Expand Down

0 comments on commit 14d59c1

Please sign in to comment.