diff -Naur node-v11.15.0-orig/configure.py node-v11.15.0/configure.py
--- node-v11.15.0-orig/configure.py
+++ node-v11.15.0/configure.py
@@ -1687,7 +1687,7 @@
 
 if options.use_ninja:
   gyp_args += ['-f', 'ninja']
-elif flavor == 'win' and sys.platform != 'msys':
+elif flavor == 'win' and sys.platform != 'msys' and not ('GCC' in sys.version):
   gyp_args += ['-f', 'msvs', '-G', 'msvs_version=auto']
 else:
   gyp_args += ['-f', 'make-' + flavor]
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/make.py node-v11.15.0/tools/gyp/pylib/gyp/generator/make.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/make.py	2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/make.py	2019-06-28 08:07:23.053184000 +0300
@@ -94,6 +94,8 @@
     default_variables.setdefault('OS', operating_system)
     if flavor == 'aix':
       default_variables.setdefault('SHARED_LIB_SUFFIX', '.a')
+    elif flavor == 'win':
+      default_variables.setdefault('SHARED_LIB_SUFFIX', '.dll')
     else:
       default_variables.setdefault('SHARED_LIB_SUFFIX', '.so')
     default_variables.setdefault('SHARED_LIB_DIR','$(builddir)/lib.$(TOOLSET)')
@@ -172,6 +174,26 @@
 cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS)
 """
 
+LINK_COMMANDS_WINMINGW = """\
+quiet_cmd_alink = AR($(TOOLSET)) $@
+cmd_alink = rm -f $@ && echo $(filter %.o,$^) >> $(@).rsp && $(AR.$(TOOLSET)) crs $@ @$(@).rsp
+
+quiet_cmd_alink_thin = AR($(TOOLSET)) $@
+cmd_alink_thin = rm -f $@ && echo $(filter %.o,$^) >> $(@).rsp && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) @$(@).rsp
+
+# Due to circular dependencies between libraries :(, we wrap the
+# special "figure out circular dependencies" flags around the entire
+# input list during linking.
+quiet_cmd_link = LINK($(TOOLSET)) $@
+cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
+
+quiet_cmd_solink = SOLINK($(TOOLSET)) $@
+cmd_solink = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(@F).a -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS)
+
+quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
+cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(@F).a -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS)
+"""
+
 LINK_COMMANDS_MAC = """\
 quiet_cmd_alink = LIBTOOL-STATIC $@
 cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^)
@@ -1354,6 +1376,8 @@
       target_prefix = 'lib'
       if self.flavor == 'aix':
         target_ext = '.a'
+      elif  self.flavor == 'win':
+        target_ext = '.dll'
       else:
         target_ext = '.so'
     elif self.type == 'none':
@@ -2060,6 +2084,11 @@
     header_params.update({
         'copy_archive_args': copy_archive_arguments,
     })
+  elif flavor == 'win':
+    copy_archive_arguments = '-pPRf'
+    header_params.update({
+        'link_commands': LINK_COMMANDS_WINMINGW,
+    })
   elif flavor == 'aix':
     copy_archive_arguments = '-pPRf'
     header_params.update({
