diff -urN pycurl-REL_7_44_1-orig/setup.py pycurl-REL_7_44_1/setup.py
--- pycurl-REL_7_44_1-orig/setup.py	2021-08-16 03:31:12 +0800
+++ pycurl-REL_7_44_1/setup.py	2021-11-21 21:58:50 +0800
@@ -119,7 +119,7 @@
                 fail("FATAL: bad directory %s in environment variable %s" % (dir, envvar))
 
     def detect_features(self):
-        p = subprocess.Popen((self.curl_config(), '--features'),
+        p = subprocess.Popen(('sh', self.curl_config(), '--features'),
             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         stdout, stderr = p.communicate()
         if p.wait() != 0:
@@ -231,7 +231,7 @@
             self.include_dirs.append(os.path.join(OPENSSL_DIR, "include"))
             self.library_dirs.append(os.path.join(OPENSSL_DIR, "lib"))
         try:
-            p = subprocess.Popen((self.curl_config(), '--version'),
+            p = subprocess.Popen(('sh', self.curl_config(), '--version'),
                 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         except OSError:
             exc = sys.exc_info()[1]
@@ -245,7 +245,7 @@
             raise ConfigurationError(msg)
         libcurl_version = stdout.decode().strip()
         print("Using %s (%s)" % (self.curl_config(), libcurl_version))
-        p = subprocess.Popen((self.curl_config(), '--cflags'),
+        p = subprocess.Popen(('sh', self.curl_config(), '--cflags'),
             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         stdout, stderr = p.communicate()
         if p.wait() != 0:
@@ -286,8 +286,8 @@
         optbuf = ''
         sslhintbuf = ''
         errtext = ''
-        for option in ["--libs", "--static-libs"]:
-            p = subprocess.Popen((self.curl_config(), option),
+        if sys.platform == 'win32':
+            p = subprocess.Popen(('pkg-config', '--libs', '--static', 'libcurl'),
                 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
             stdout, stderr = p.communicate()
             if p.wait() == 0:
@@ -389,7 +389,7 @@
 
     def detect_ssl_lib_using_curl_config(self):
         ssl_lib_detected = None
-        p = subprocess.Popen((self.curl_config(), '--ssl-backends'),
+        p = subprocess.Popen(('sh', self.curl_config(), '--ssl-backends'),
             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         stdout, stderr = p.communicate()
         if p.wait() != 0:
@@ -478,7 +478,7 @@
                 # connect.microsoft.com/VisualStudio/feedback/details/475896/link-fatal-error-lnk1117-syntax-error-in-option-opt-nowin98/
                 self.extra_link_args.append("/opt:nowin98")  # use small section alignment
 
-    if sys.platform == "win32":
+    if str.find(sys.version, "MSC") >= 0:
         configure = configure_windows
     else:
         configure = configure_unix
@@ -532,7 +532,7 @@
 
     def using_openssl(self):
         self.define_macros.append(('HAVE_CURL_OPENSSL', 1))
-        if sys.platform == "win32":
+        if str.find(sys.version, "MSC") >= 0:
             # CRYPTO_num_locks is defined in libeay32.lib
             # for openssl < 1.1.0; it is a noop for openssl >= 1.1.0
             self.extra_link_args.append(self.openssl_lib_name)
@@ -607,7 +607,7 @@
 
 
 def strip_pycurl_options(argv):
-    if sys.platform == 'win32':
+    if str.find(sys.version, "MSC") >= 0:
         options = [
             '--curl-dir=', '--libcurl-lib-name=', '--use-libcurl-dll',
             '--avoid-stdio', '--with-openssl',
