summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorNed Deily <nad@acm.org>2012-02-11 19:40:24 (GMT)
committerNed Deily <nad@acm.org>2012-02-11 19:40:24 (GMT)
commitc47a4592514568215aa617fc25121a9a9a83e3f1 (patch)
treea732b6b01cd914966eaa200109939340e02e8966 /Lib
parent0f7e2df2f171a26e73b874a961d9c42ff9abf3e8 (diff)
downloadcpython-c47a4592514568215aa617fc25121a9a9a83e3f1.zip
cpython-c47a4592514568215aa617fc25121a9a9a83e3f1.tar.gz
cpython-c47a4592514568215aa617fc25121a9a9a83e3f1.tar.bz2
Issue #13994: Earler partial revert of Distutils enhancements in 2.7
has left two versions of customize_compiler, the original in distutils.sysconfig and another copy in distutils.ccompiler, with some parts of distutils calling one and others using the other. Complete the revert back to only having one in distutils.sysconfig as is the case in 3.x.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/distutils/ccompiler.py52
-rw-r--r--Lib/distutils/command/build_clib.py2
-rw-r--r--Lib/distutils/command/config.py2
-rw-r--r--Lib/distutils/sysconfig.py14
-rw-r--r--Lib/distutils/tests/test_build_clib.py3
-rw-r--r--Lib/distutils/tests/test_ccompiler.py3
6 files changed, 17 insertions, 59 deletions
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index c2b1f6f..7076b93 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -18,58 +18,6 @@ from distutils.dep_util import newer_group
from distutils.util import split_quoted, execute
from distutils import log
-_sysconfig = __import__('sysconfig')
-
-def customize_compiler(compiler):
- """Do any platform-specific customization of a CCompiler instance.
-
- Mainly needed on Unix, so we can plug in the information that
- varies across Unices and is stored in Python's Makefile.
- """
- if compiler.compiler_type == "unix":
- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
- _sysconfig.get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
- 'ARFLAGS')
-
- if 'CC' in os.environ:
- cc = os.environ['CC']
- if 'CXX' in os.environ:
- cxx = os.environ['CXX']
- if 'LDSHARED' in os.environ:
- ldshared = os.environ['LDSHARED']
- if 'CPP' in os.environ:
- cpp = os.environ['CPP']
- else:
- cpp = cc + " -E" # not always
- if 'LDFLAGS' in os.environ:
- ldshared = ldshared + ' ' + os.environ['LDFLAGS']
- if 'CFLAGS' in os.environ:
- cflags = opt + ' ' + os.environ['CFLAGS']
- ldshared = ldshared + ' ' + os.environ['CFLAGS']
- if 'CPPFLAGS' in os.environ:
- cpp = cpp + ' ' + os.environ['CPPFLAGS']
- cflags = cflags + ' ' + os.environ['CPPFLAGS']
- ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
- if 'AR' in os.environ:
- ar = os.environ['AR']
- if 'ARFLAGS' in os.environ:
- archiver = ar + ' ' + os.environ['ARFLAGS']
- else:
- archiver = ar + ' ' + ar_flags
-
- cc_cmd = cc + ' ' + cflags
- compiler.set_executables(
- preprocessor=cpp,
- compiler=cc_cmd,
- compiler_so=cc_cmd + ' ' + ccshared,
- compiler_cxx=cxx,
- linker_so=ldshared,
- linker_exe=cc,
- archiver=archiver)
-
- compiler.shared_lib_extension = so_ext
-
class CCompiler:
"""Abstract base class to define the interface that must be implemented
by real compiler classes. Also has some utility methods used by
diff --git a/Lib/distutils/command/build_clib.py b/Lib/distutils/command/build_clib.py
index 98a1726..205587e 100644
--- a/Lib/distutils/command/build_clib.py
+++ b/Lib/distutils/command/build_clib.py
@@ -19,7 +19,7 @@ __revision__ = "$Id$"
import os
from distutils.core import Command
from distutils.errors import DistutilsSetupError
-from distutils.ccompiler import customize_compiler
+from distutils.sysconfig import customize_compiler
from distutils import log
def show_compilers():
diff --git a/Lib/distutils/command/config.py b/Lib/distutils/command/config.py
index da8da59..b084913 100644
--- a/Lib/distutils/command/config.py
+++ b/Lib/distutils/command/config.py
@@ -16,7 +16,7 @@ import re
from distutils.core import Command
from distutils.errors import DistutilsExecError
-from distutils.ccompiler import customize_compiler
+from distutils.sysconfig import customize_compiler
from distutils import log
LANG_EXT = {'c': '.c', 'c++': '.cxx'}
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 4f9041a..4b193b2 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -150,9 +150,10 @@ 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, ar_flags) = \
get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
- 'CCSHARED', 'LDSHARED', 'SO')
+ 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+ 'ARFLAGS')
newcc = None
if 'CC' in os.environ:
@@ -203,6 +204,12 @@ 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']
+ if 'ARFLAGS' in os.environ:
+ archiver = ar + ' ' + os.environ['ARFLAGS']
+ else:
+ archiver = ar + ' ' + ar_flags
cc_cmd = cc + ' ' + cflags
compiler.set_executables(
@@ -211,7 +218,8 @@ def customize_compiler(compiler):
compiler_so=cc_cmd + ' ' + ccshared,
compiler_cxx=cxx,
linker_so=ldshared,
- linker_exe=cc)
+ linker_exe=cc,
+ archiver=archiver)
compiler.shared_lib_extension = so_ext
diff --git a/Lib/distutils/tests/test_build_clib.py b/Lib/distutils/tests/test_build_clib.py
index 4f4e2bc..bef1bd9 100644
--- a/Lib/distutils/tests/test_build_clib.py
+++ b/Lib/distutils/tests/test_build_clib.py
@@ -122,7 +122,8 @@ class BuildCLibTestCase(support.TempdirManager,
# before we run the command, we want to make sure
# all commands are present on the system
# by creating a compiler and checking its executables
- from distutils.ccompiler import new_compiler, customize_compiler
+ from distutils.ccompiler import new_compiler
+ from distutils.sysconfig import customize_compiler
compiler = new_compiler()
customize_compiler(compiler)
diff --git a/Lib/distutils/tests/test_ccompiler.py b/Lib/distutils/tests/test_ccompiler.py
index e21873e..45e477a 100644
--- a/Lib/distutils/tests/test_ccompiler.py
+++ b/Lib/distutils/tests/test_ccompiler.py
@@ -4,7 +4,8 @@ import unittest
from test.test_support import captured_stdout
from distutils.ccompiler import (gen_lib_options, CCompiler,
- get_default_compiler, customize_compiler)
+ get_default_compiler)
+from distutils.sysconfig import customize_compiler
from distutils import debug
from distutils.tests import support