--- a/pyqtbuild/builder.py
+++ b/pyqtbuild/builder.py
@@ -39,7 +39,7 @@
             exe_dir, exe_name = os.path.split(sys.argv[0])
 
             if exe_name.startswith('sip-'):
-                self._sip_distinfo = os.path.join(os.path.abspath(exe_dir),
+                self._sip_distinfo = os.path.join(os.path.abspath(exe_dir.replace('\\', '/')),
                         self._sip_distinfo)
 
             # Check we have a qmake.
@@ -233,8 +233,12 @@
                             ['install_' + installable.name
                                     for installable in project.installables])))
             pro_lines.append('distinfo.extra = {}'.format(' '.join(args)))
+            if self.project.py_platform == 'win32' and "MSYSTEM" in os.environ:
+                distinfo_dir = os.popen(' '.join(['cygpath', '--unix', target_dir])).readline().strip()
+            else:
+                distinfo_dir = target_dir
             pro_lines.append(
-                    'distinfo.path = {}'.format(self.qmake_quote(target_dir)))
+                    'distinfo.path = {}'.format(self.qmake_quote(distinfo_dir)))
             pro_lines.append('INSTALLS += distinfo')
 
         pro_name = os.path.join(project.build_dir, project.name + '.pro')
@@ -461,8 +465,8 @@
         # TODO: is this still necessary for Python v3.8?
         if not buildable.static:
             pro_lines.extend(['win32 {',
-                    '    LIBS += -L{}'.format(
-                            self.qmake_quote(project.py_pylib_dir)),
+                    '    LIBS += -L{} -l{}'.format(
+                            self.qmake_quote(project.py_pylib_dir), self.qmake_quote(project.py_pylib_lib)),
                     '}'])
 
         # Add any installables from the buildable.
@@ -493,6 +497,8 @@
                             "Unexpected output from qmake: '{0}'".format(line))
 
                 name, value = tokens
+                if "MSYSTEM" in os.environ and value != "":
+                    value = os.popen(' '.join(['cygpath', '--unix', value])).readline().strip()
             else:
                 name = tokens
                 value = None
@@ -627,7 +633,7 @@
 
         if install:
             args.append('install')
-        elif project.py_platform != 'win32' and self.jobs:
+        elif args[0] == 'make' and self.jobs:
             args.append('-j')
             args.append(str(self.jobs))
 
--- a/pyqtbuild/project.py
+++ b/pyqtbuild/project.py
@@ -56,7 +56,7 @@
         # Get the details of the default Python interpreter library.  Note that
         # these are actually non-user options but we need the 'link_full_dll'
         # user option in order to set them.
-        if self.py_platform == 'win32':
+        if self.py_platform == 'win32' and 'MSC' in sys.version:
             pylib_dir = os.path.join(sys.base_prefix, 'libs')
 
             debug_suffix = '_d' if self.py_debug else ''
