]> Git Repo - binutils.git/blobdiff - gdb/python/python-config.py
gdb: remove COMPUNIT_PRODUCER macro, add getter/setter
[binutils.git] / gdb / python / python-config.py
index 285a2270426f24f390e7eddf7d33175abacad896..027d80dcc86c85050ed2e00c6e1e28e31feba1ae 100644 (file)
@@ -1,54 +1,82 @@
 # Program to fetch python compilation parameters.
-# Copied from python-config of the 2.6.5 release.
+# Copied from python-config of the 2.7 release.
 
 import sys
 import os
 import getopt
 from distutils import sysconfig
 
-valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', 
-              'ldflags', 'help']
+valid_opts = ["prefix", "exec-prefix", "includes", "libs", "cflags", "ldflags", "help"]
+
 
 def exit_with_usage(code=1):
-    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0], 
-                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.stderr.write(
+        "Usage: %s [%s]\n" % (sys.argv[0], "|".join("--" + opt for opt in valid_opts))
+    )
     sys.exit(code)
 
+
 try:
-    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+    opts, args = getopt.getopt(sys.argv[1:], "", valid_opts)
 except getopt.error:
     exit_with_usage()
 
 if not opts:
     exit_with_usage()
 
-opt = opts[0][0]
-
-pyver = sysconfig.get_config_var('VERSION')
+pyver = sysconfig.get_config_var("VERSION")
 getvar = sysconfig.get_config_var
+abiflags = getattr(sys, "abiflags", "")
+
+opt_flags = [flag for (flag, val) in opts]
+
+if "--help" in opt_flags:
+    exit_with_usage(code=0)
+
+
+def to_unix_path(path):
+    """On Windows, returns the given path with all backslashes
+    converted into forward slashes.  This is to help prevent problems
+    when using the paths returned by this script with cygwin tools.
+    In particular, cygwin bash treats backslashes as a special character.
 
-if opt == '--help':
-    exit_with_usage(0)
+    On Unix systems, returns the path unchanged.
+    """
+    if os.name == "nt":
+        path = path.replace("\\", "/")
+    return path
 
-elif opt == '--prefix':
-    print sysconfig.PREFIX
 
-elif opt == '--exec-prefix':
-    print sysconfig.EXEC_PREFIX
+for opt in opt_flags:
+    if opt == "--prefix":
+        print(to_unix_path(sysconfig.PREFIX))
 
-elif opt in ('--includes', '--cflags'):
-    flags = ['-I' + sysconfig.get_python_inc(),
-             '-I' + sysconfig.get_python_inc(plat_specific=True)]
-    if opt == '--cflags':
-        flags.extend(getvar('CFLAGS').split())
-    print ' '.join(flags)
+    elif opt == "--exec-prefix":
+        print(to_unix_path(sysconfig.EXEC_PREFIX))
 
-elif opt in ('--libs', '--ldflags'):
-    libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
-    libs.append('-lpython'+pyver)
-    # add the prefix/lib/pythonX.Y/config dir, but only if there is no
-    # shared library in prefix/lib/.
-    if opt == '--ldflags' and not getvar('Py_ENABLE_SHARED'):
-        libs.insert(0, '-L' + getvar('LIBPL'))
-    print ' '.join(libs)
+    elif opt in ("--includes", "--cflags"):
+        flags = [
+            "-I" + sysconfig.get_python_inc(),
+            "-I" + sysconfig.get_python_inc(plat_specific=True),
+        ]
+        if opt == "--cflags":
+            flags.extend(getvar("CFLAGS").split())
+        print(to_unix_path(" ".join(flags)))
 
+    elif opt in ("--libs", "--ldflags"):
+        libs = ["-lpython" + pyver + abiflags]
+        if getvar("LIBS") is not None:
+            libs.extend(getvar("LIBS").split())
+        if getvar("SYSLIBS") is not None:
+            libs.extend(getvar("SYSLIBS").split())
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == "--ldflags":
+            if not getvar("Py_ENABLE_SHARED"):
+                if getvar("LIBPL") is not None:
+                    libs.insert(0, "-L" + getvar("LIBPL"))
+                elif os.name == "nt":
+                    libs.insert(0, "-L" + sysconfig.PREFIX + "/libs")
+            if getvar("LINKFORSHARED") is not None:
+                libs.extend(getvar("LINKFORSHARED").split())
+        print(to_unix_path(" ".join(libs)))
This page took 0.031027 seconds and 4 git commands to generate.