1if $mingw or $mswin 2 $objs = ["dlntest.o"] 3 testdll = "$(topdir)/dlntest.dll" 4 $cleanfiles << testdll 5 config_string('cleanobjs') {|t| $cleanfiles.concat(t.gsub(/\$\*/, 'dlntest').split)} 6 7 create_makefile("-test-/win32/dln") 8 m = File.read("Makefile") 9 dlntestlib = "dlntest.#{$LIBEXT}" 10 m.sub!(/^OBJS =.*/) {"#{$&} #{dlntestlib}"} 11 FileUtils.rm_f(RbConfig.expand(testdll.dup)) 12 open("Makefile", "wb") do |mf| 13 mf.puts m, "\n" 14 sodir = $extout ? "$(RUBYARCHDIR)/" : '' 15 mf.print "#{sodir}$(DLLIB): #{dlntestlib}" 16 mf.puts 17 mf.puts "#{dlntestlib}: $(topdir)/dlntest.dll" 18 mf.puts 19 if $mingw 20 mf.puts "$(topdir)/dlntest.dll: DEFFILE := $(srcdir)/libdlntest.def" 21 mf.puts "$(topdir)/dlntest.dll: DLDFLAGS += -Wl,--out-implib,#{dlntestlib}" 22 end 23 mf.puts depend_rules("$(topdir)/dlntest.dll: libdlntest.o libdlntest.def") 24 mf.puts "\t$(ECHO) linking shared-object $(@F)\n" 25 mf.print "\t-$(Q)$(RM) $@\n" 26 mf.print "\t-$(Q)$(MAKEDIRS) $(@D)\n" if $extout 27 link_so = LINK_SO.gsub(/^/, "\t$(Q) ") 28 link_so.sub!(/\$\(LOCAL_LIBS\)/, '') 29 link_so.gsub!(/-\$\(arch\)/, '') 30 link_so.gsub!(/:.so=/, ':.dll=') 31 link_so.sub!(/\$\(OBJS\)/, "libdlntest.#{$OBJEXT}") 32 link_so.sub!(/\$\(DEFFILE\)/, "$(srcdir)/libdlntest.def") 33 mf.puts link_so 34 mf.puts 35 end 36end 37