summaryrefslogtreecommitdiffstats
path: root/Lib/distutils
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-02-06 01:15:51 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-02-06 01:15:51 (GMT)
commit05adf073cc899af4cdcdc198a1e2826ad96dd457 (patch)
treed41017cbc6a21a802b4999f66c316ac6a55ce380 /Lib/distutils
parentaaf2e1884152df80dc8c0167ed1c65eb503484e0 (diff)
downloadcpython-05adf073cc899af4cdcdc198a1e2826ad96dd457.zip
cpython-05adf073cc899af4cdcdc198a1e2826ad96dd457.tar.gz
cpython-05adf073cc899af4cdcdc198a1e2826ad96dd457.tar.bz2
fixed #1520877: now distutils reads Read from the environment/Makefile
Diffstat (limited to 'Lib/distutils')
-rw-r--r--Lib/distutils/sysconfig.py9
-rw-r--r--Lib/distutils/tests/test_sysconfig.py22
2 files changed, 28 insertions, 3 deletions
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index ec2f8a9..deb51a1 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -165,9 +165,9 @@ def customize_compiler(compiler):
varies across Unices and is stored in Python's Makefile.
"""
if compiler.compiler_type == "unix":
- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext) = \
+ (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar) = \
get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
- 'CCSHARED', 'LDSHARED', 'SO')
+ 'CCSHARED', 'LDSHARED', 'SO', 'AR')
if 'CC' in os.environ:
cc = os.environ['CC']
@@ -188,6 +188,8 @@ def customize_compiler(compiler):
cpp = cpp + ' ' + os.environ['CPPFLAGS']
cflags = cflags + ' ' + os.environ['CPPFLAGS']
ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
cc_cmd = cc + ' ' + cflags
compiler.set_executables(
@@ -196,7 +198,8 @@ def customize_compiler(compiler):
compiler_so=cc_cmd + ' ' + ccshared,
compiler_cxx=cxx,
linker_so=ldshared,
- linker_exe=cc)
+ linker_exe=cc,
+ archiver=ar)
compiler.shared_lib_extension = so_ext
diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py
index 397bb12..7f0bce6 100644
--- a/Lib/distutils/tests/test_sysconfig.py
+++ b/Lib/distutils/tests/test_sysconfig.py
@@ -8,6 +8,13 @@ from test.test_support import TESTFN
class SysconfigTestCase(unittest.TestCase):
+ def setUp(self):
+ self.old_AR = os.environ.get('AR')
+
+ def tearDown(self):
+ if self.old_AR is not None:
+ os.environ['AR'] = self.old_AR
+
def test_get_config_h_filename(self):
config_h = sysconfig.get_config_h_filename()
self.assert_(os.path.isfile(config_h), config_h)
@@ -32,6 +39,21 @@ class SysconfigTestCase(unittest.TestCase):
self.assert_(isinstance(cvars, dict))
self.assert_(cvars)
+ def test_customize_compiler(self):
+
+ os.environ['AR'] = 'xxx'
+
+ # make sure AR gets caught
+ class compiler:
+ compiler_type = 'unix'
+
+ def set_executables(self, **kw):
+ self.exes = kw
+
+ comp = compiler()
+ sysconfig.customize_compiler(comp)
+ self.assertEquals(comp.exes['archiver'], 'xxx')
+
def test_suite():
suite = unittest.TestSuite()