diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2007-05-18 20:17:48 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2007-05-18 20:17:48 +0000 |
commit | 6f82e1e9c704daaf398015ecc20892d89e56b259 (patch) | |
tree | 7c3d04682a4dcd7ea50490a1e4cac08f3cf983a8 | |
parent | 571f16714fe9c2c744c6563d495dd0aaa47a843b (diff) | |
download | numpy-6f82e1e9c704daaf398015ecc20892d89e56b259.tar.gz |
unify config_fc, build_clib, build_ext commands --fcompiler options so that --fcompiler can be specified only once in a command line
-rw-r--r-- | numpy/distutils/command/build.py | 5 | ||||
-rw-r--r-- | numpy/distutils/command/build_clib.py | 6 | ||||
-rw-r--r-- | numpy/distutils/command/build_ext.py | 5 | ||||
-rw-r--r-- | numpy/distutils/command/config_compiler.py | 18 |
4 files changed, 23 insertions, 11 deletions
diff --git a/numpy/distutils/command/build.py b/numpy/distutils/command/build.py index d30d9f9ca..f74fbde69 100644 --- a/numpy/distutils/command/build.py +++ b/numpy/distutils/command/build.py @@ -5,7 +5,7 @@ from distutils.util import get_platform class build(old_build): - sub_commands = [('config_fc', lambda *args: 1), + sub_commands = [('config_fc', lambda *args: True), ('build_src', old_build.has_ext_modules), ] + old_build.sub_commands @@ -16,3 +16,6 @@ class build(old_build): if build_scripts is None: self.build_scripts = os.path.join(self.build_base, 'scripts' + plat_specifier) + return + +#EOF diff --git a/numpy/distutils/command/build_clib.py b/numpy/distutils/command/build_clib.py index fd4d41cde..c3d41fea3 100644 --- a/numpy/distutils/command/build_clib.py +++ b/numpy/distutils/command/build_clib.py @@ -29,11 +29,7 @@ class build_clib(old_build_clib): def initialize_options(self): old_build_clib.initialize_options(self) self.fcompiler = None - - def finalize_options(self): - old_build_clib.finalize_options(self) - self.set_undefined_options('build_ext', - ('fcompiler', 'fcompiler')) + return def have_f_sources(self): for (lib_name, build_info) in self.libraries: diff --git a/numpy/distutils/command/build_ext.py b/numpy/distutils/command/build_ext.py index 78e360ba6..e85b060d0 100644 --- a/numpy/distutils/command/build_ext.py +++ b/numpy/distutils/command/build_ext.py @@ -38,9 +38,7 @@ class build_ext (old_build_ext): incl_dirs = self.include_dirs old_build_ext.finalize_options(self) if incl_dirs is not None: - self.include_dirs.extend(self.distribution.include_dirs or []) - self.set_undefined_options('config_fc', - ('fcompiler', 'fcompiler')) + self.include_dirs.extend(self.distribution.include_dirs or []) return def run(self): @@ -224,7 +222,6 @@ class build_ext (old_build_ext): modpath = string.split(fullname, '.') package = string.join(modpath[0:-1], '.') base = modpath[-1] - build_py = self.get_finalized_command('build_py') package_dir = build_py.get_package_dir(package) ext_filename = os.path.join(package_dir, diff --git a/numpy/distutils/command/config_compiler.py b/numpy/distutils/command/config_compiler.py index 30a21dd7d..ebbe4c8e1 100644 --- a/numpy/distutils/command/config_compiler.py +++ b/numpy/distutils/command/config_compiler.py @@ -1,5 +1,6 @@ import sys from distutils.core import Command +from numpy.distutils import log #XXX: Implement confic_cc for enhancing C/C++ compiler options. #XXX: Linker flags @@ -56,7 +57,22 @@ class config_fc(Command): return def finalize_options(self): - # Do nothing. + log.info('unifing config_fc, build_ext, build_clib commands fcompiler options') + build_clib = self.get_finalized_command('build_clib') + build_ext = self.get_finalized_command('build_ext') + for a in ['fcompiler']: + l = [] + for c in [self, build_clib, build_ext]: + v = getattr(c,a) + if v is not None and v not in l: l.append(v) + if not l: v1 = None + else: v1 = l[0] + if len(l)>1: + log.warn(' commands have different --%s options: %s'\ + ', using first in list as default' % (a, l)) + if v1: + for c in [self, build_clib, build_ext]: + if getattr(c,a) is None: setattr(c, a, v1) return def run(self): |