From 5bbc7b9283c40996c198511f57211d4f77d6a12d Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Thu, 18 Jan 2001 20:39:34 +0000 Subject: Patch from Barry: gets rid of two unused imports, wraps to 80chars, and adds some really hacky setting of compiler options when CC and LDSHARED are given on the make command line. (The Distutils should probably provide a utility function to automatically handle a number of common environment variables) --- setup.py | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/setup.py b/setup.py index e7bcc9c..6d4b2bc 100644 --- a/setup.py +++ b/setup.py @@ -53,8 +53,6 @@ def module_enabled(extlist, modname): class PyBuildExt(build_ext): def build_extensions(self): - from distutils.ccompiler import new_compiler - from distutils.sysconfig import customize_compiler # Detect which modules should be compiled self.detect_modules() @@ -87,7 +85,21 @@ class PyBuildExt(build_ext): pass # Not built, so this is what we expect else: self.extensions.remove(ext) - + + # When you run "make CC=altcc" or something similar, you really want + # those environment variables passed into the setup.py phase. Here's + # a small set of useful ones. + compiler = os.environ.get('CC') + linker_so = os.environ.get('LDSHARED') + args = {} + # unfortunately, distutils doesn't let us provide separate C and C++ + # compilers + if compiler is not None: + args['compiler_so'] = compiler + if linker_so is not None: + args['linker_so'] = linker_so + ' -shared' + self.compiler.set_executables(**args) + build_ext.build_extensions(self) def detect_modules(self): @@ -132,7 +144,8 @@ class PyBuildExt(build_ext): # access to the builtin codecs and codec registry exts.append( Extension('_codecs', ['_codecsmodule.c']) ) # static Unicode character database - exts.append( Extension('unicodedata', ['unicodedata.c', 'unicodedatabase.c']) ) + exts.append( Extension('unicodedata', + ['unicodedata.c', 'unicodedatabase.c']) ) # Unicode Character Name expansion hash table exts.append( Extension('ucnhash', ['ucnhash.c']) ) # access to ISO C locale support @@ -162,7 +175,8 @@ class PyBuildExt(build_ext): # (NIST's Secure Hash Algorithm.) exts.append( Extension('sha', ['shamodule.c']) ) - # Tommy Burnette's 'new' module (creates new empty objects of certain kinds): + # Tommy Burnette's 'new' module (creates new empty objects of certain + # kinds): exts.append( Extension('new', ['newmodule.c']) ) # Helper module for various ascii-encoders @@ -188,8 +202,8 @@ class PyBuildExt(build_ext): exts.append( Extension('timing', ['timingmodule.c']) ) # - # Here ends the simple stuff. From here on, modules need certain libraries, - # are platform-specific, or present other surprises. + # Here ends the simple stuff. From here on, modules need certain + # libraries, are platform-specific, or present other surprises. # # Multimedia modules @@ -368,16 +382,17 @@ class PyBuildExt(build_ext): # (see below). The pyexpat module was written by Paul Prescod after a # prototype by Jack Jansen. # - # The Expat dist includes Windows .lib and .dll files. Home page is at - # http://www.jclark.com/xml/expat.html, the current production release is - # always ftp://ftp.jclark.com/pub/xml/expat.zip. + # The Expat dist includes Windows .lib and .dll files. Home page is + # at http://www.jclark.com/xml/expat.html, the current production + # release is always ftp://ftp.jclark.com/pub/xml/expat.zip. # # EXPAT_DIR, below, should point to the expat/ directory created by # unpacking the Expat source distribution. # - # Note: the expat build process doesn't yet build a libexpat.a; you can - # do this manually while we try convince the author to add it. To do so, - # cd to EXPAT_DIR, run "make" if you have not done so, then run: + # Note: the expat build process doesn't yet build a libexpat.a; you + # can do this manually while we try convince the author to add it. To + # do so, cd to EXPAT_DIR, run "make" if you have not done so, then + # run: # # ar cr libexpat.a xmltok/*.o xmlparse/*.o # @@ -523,4 +538,3 @@ def main(): if __name__ == '__main__': sysconfig.set_python_build() main() - -- cgit v0.12