mirror of https://github.com/python/cpython
Merged revisions 73341 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r73341 | tarek.ziade | 2009-06-11 10:12:20 +0200 (Thu, 11 Jun 2009) | 1 line Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles ........
This commit is contained in:
parent
e5ed650d71
commit
6b16c00b92
|
@ -275,18 +275,25 @@ def parse_makefile(fn, g=None):
|
||||||
|
|
||||||
while 1:
|
while 1:
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
if line is None: # eof
|
if line is None: # eof
|
||||||
break
|
break
|
||||||
m = _variable_rx.match(line)
|
m = _variable_rx.match(line)
|
||||||
if m:
|
if m:
|
||||||
n, v = m.group(1, 2)
|
n, v = m.group(1, 2)
|
||||||
v = string.strip(v)
|
v = v.strip()
|
||||||
if "$" in v:
|
# `$$' is a literal `$' in make
|
||||||
|
tmpv = v.replace('$$', '')
|
||||||
|
|
||||||
|
if "$" in tmpv:
|
||||||
notdone[n] = v
|
notdone[n] = v
|
||||||
else:
|
else:
|
||||||
try: v = int(v)
|
try:
|
||||||
except ValueError: pass
|
v = int(v)
|
||||||
done[n] = v
|
except ValueError:
|
||||||
|
# insert literal `$'
|
||||||
|
done[n] = v.replace('$$', '$')
|
||||||
|
else:
|
||||||
|
done[n] = v
|
||||||
|
|
||||||
# do variable interpolation here
|
# do variable interpolation here
|
||||||
while notdone:
|
while notdone:
|
||||||
|
@ -314,7 +321,7 @@ def parse_makefile(fn, g=None):
|
||||||
else:
|
else:
|
||||||
try: value = int(value)
|
try: value = int(value)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
done[name] = string.strip(value)
|
done[name] = value.strip()
|
||||||
else:
|
else:
|
||||||
done[name] = value
|
done[name] = value
|
||||||
del notdone[name]
|
del notdone[name]
|
||||||
|
|
|
@ -2,11 +2,20 @@
|
||||||
|
|
||||||
from distutils import sysconfig
|
from distutils import sysconfig
|
||||||
import os
|
import os
|
||||||
|
import test
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from test.test_support import TESTFN
|
from test.test_support import TESTFN
|
||||||
|
|
||||||
class SysconfigTestCase(unittest.TestCase):
|
class SysconfigTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
super(SysconfigTestCase, self).setUp()
|
||||||
|
self.makefile = None
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
if self.makefile is not None:
|
||||||
|
os.unlink(self.makefile)
|
||||||
|
super(SysconfigTestCase, self).tearDown()
|
||||||
|
|
||||||
def test_get_config_h_filename(self):
|
def test_get_config_h_filename(self):
|
||||||
config_h = sysconfig.get_config_h_filename()
|
config_h = sysconfig.get_config_h_filename()
|
||||||
|
@ -51,8 +60,22 @@ class SysconfigTestCase(unittest.TestCase):
|
||||||
self.assert_(isinstance(cvars, dict))
|
self.assert_(isinstance(cvars, dict))
|
||||||
self.assert_(cvars)
|
self.assert_(cvars)
|
||||||
|
|
||||||
|
def test_parse_makefile_literal_dollar(self):
|
||||||
|
self.makefile = test.test_support.TESTFN
|
||||||
|
fd = open(self.makefile, 'w')
|
||||||
|
fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=\$$LIB'" '\n')
|
||||||
|
fd.write('VAR=$OTHER\nOTHER=foo')
|
||||||
|
fd.close()
|
||||||
|
d = sysconfig.parse_makefile(self.makefile)
|
||||||
|
self.assertEquals(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'",
|
||||||
|
'OTHER': 'foo'})
|
||||||
|
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
suite = unittest.TestSuite()
|
suite = unittest.TestSuite()
|
||||||
suite.addTest(unittest.makeSuite(SysconfigTestCase))
|
suite.addTest(unittest.makeSuite(SysconfigTestCase))
|
||||||
return suite
|
return suite
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
test.test_support.run_unittest(test_suite())
|
||||||
|
|
|
@ -234,6 +234,10 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #5201: distutils.sysconfig.parse_makefile() now understands `$$`
|
||||||
|
in Makefiles. This prevents compile errors when using syntax like:
|
||||||
|
`LDFLAGS='-rpath=\$$LIB:/some/other/path'`. Patch by Floris Bruynooghe.
|
||||||
|
|
||||||
- Issue #6062: In distutils, fixed the package option of build_ext. Feedback
|
- Issue #6062: In distutils, fixed the package option of build_ext. Feedback
|
||||||
and tests on pywin32 by Tim Golden.
|
and tests on pywin32 by Tim Golden.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue