summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2007-05-18 20:17:48 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2007-05-18 20:17:48 +0000
commit6f82e1e9c704daaf398015ecc20892d89e56b259 (patch)
tree7c3d04682a4dcd7ea50490a1e4cac08f3cf983a8
parent571f16714fe9c2c744c6563d495dd0aaa47a843b (diff)
downloadnumpy-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.py5
-rw-r--r--numpy/distutils/command/build_clib.py6
-rw-r--r--numpy/distutils/command/build_ext.py5
-rw-r--r--numpy/distutils/command/config_compiler.py18
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):