|  | # Program to fetch python compilation parameters. | 
|  | # 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"] | 
|  |  | 
|  |  | 
|  | def exit_with_usage(code=1): | 
|  | 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) | 
|  | except getopt.error: | 
|  | exit_with_usage() | 
|  |  | 
|  | if not opts: | 
|  | exit_with_usage() | 
|  |  | 
|  | 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. | 
|  |  | 
|  | On Unix systems, returns the path unchanged. | 
|  | """ | 
|  | if os.name == "nt": | 
|  | path = path.replace("\\", "/") | 
|  | return path | 
|  |  | 
|  |  | 
|  | for opt in opt_flags: | 
|  | if opt == "--prefix": | 
|  | print(to_unix_path(sysconfig.PREFIX)) | 
|  |  | 
|  | elif opt == "--exec-prefix": | 
|  | print(to_unix_path(sysconfig.EXEC_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(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))) |