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