From b1e4a6e10186873f61fdd57340b67f420ba4901d Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Wed, 19 Apr 2000 02:22:07 +0000 Subject: Added kludge to deal with the "./ld_so_aix" problem: force all strings in the Makefile that start with "./" to be absolute paths (with the implied root being the directory where the Makefile itself was found). --- Lib/distutils/sysconfig.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index c6341c1..5cc71dc 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -205,6 +205,21 @@ def parse_makefile(fp, g=None): # bogus variable reference; just drop it since we can't deal del notdone[name] + # "Fix" all pathnames in the Makefile that are explicitly relative, + # ie. that start with "./". This is a kludge to fix the "./ld_so_aix" + # problem, the nature of which is that Python's installed Makefile + # refers to "./ld_so_aix", but when we are building extensions we are + # far from the directory where Python's Makefile (and ld_so_aix, for + # that matter) is installed. Unfortunately, there are several other + # relative pathnames in the Makefile, and this fix doesn't fix them, + # because the layout of Python's source tree -- which is what the + # Makefile refers to -- is not fully preserved in the Python + # installation. Grumble. + from os.path import normpath, join, dirname + for (name, value) in done.items(): + if value[0:2] == "./": + done[name] = normpath(join(dirname(fp.name), value)) + # save the results in the global dictionary g.update(done) return g -- cgit v0.12