Skip to content

Commit

Permalink
sysconfig: use get_makefile_filename() from stdlib sysconfig
Browse files Browse the repository at this point in the history
Instead of guessing the filename just refer to the stdlib.

This also removes the hook added in pypa#16, but

1) It was never implemented by the distro requesting it:
   https://github.com/NetBSD/pkgsrc/blob/586097714897b1b4d4a9e0a32c1658a1335442b7/devel/py-setuptools/Makefile#L28
2) The stdlib version should hopefully return a proper result

Also adds a small test cehcking that the file exists on Unix platforms
  • Loading branch information
lazka committed Dec 26, 2021
1 parent a5af364 commit 1091c82
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 15 deletions.
17 changes: 2 additions & 15 deletions distutils/sysconfig.py
Expand Up @@ -13,6 +13,7 @@
import os
import re
import sys
import sysconfig

from .errors import DistutilsPlatformError

Expand Down Expand Up @@ -280,25 +281,11 @@ def get_config_h_filename():
return os.path.join(inc_dir, 'pyconfig.h')


# Allow this value to be patched by pkgsrc. Ref pypa/distutils#16.
_makefile_tmpl = 'config-{python_ver}{build_flags}{multiarch}'


def get_makefile_filename():
"""Return full pathname of installed Makefile from the Python build."""
if python_build:
return os.path.join(_sys_home or project_base, "Makefile")
lib_dir = get_python_lib(plat_specific=0, standard_lib=1)
multiarch = (
'-%s' % sys.implementation._multiarch
if hasattr(sys.implementation, '_multiarch') else ''
)
config_file = _makefile_tmpl.format(
python_ver=get_python_version(),
build_flags=build_flags,
multiarch=multiarch,
)
return os.path.join(lib_dir, config_file, 'Makefile')
return sysconfig.get_makefile_filename()


def parse_config_h(fp, g=None):
Expand Down
6 changes: 6 additions & 0 deletions distutils/tests/test_sysconfig.py
Expand Up @@ -38,6 +38,12 @@ def test_get_config_h_filename(self):
config_h = sysconfig.get_config_h_filename()
self.assertTrue(os.path.isfile(config_h), config_h)

@unittest.skipIf(sys.platform == 'win32',
'Makefile only exists on Unix like systems')
def test_get_makefile_filename(self):
makefile = sysconfig.get_makefile_filename()
self.assertTrue(os.path.isfile(makefile), makefile)

def test_get_python_lib(self):
# XXX doesn't work on Linux when Python was never installed before
#self.assertTrue(os.path.isdir(lib_dir), lib_dir)
Expand Down

0 comments on commit 1091c82

Please sign in to comment.