Skip to content

Commit

Permalink
BF - get fortran arch flags from C arch flags if available
Browse files Browse the repository at this point in the history
  • Loading branch information
matthew-brett authored and rgommers committed Oct 16, 2010
1 parent eca8f94 commit 658a1dc
Showing 1 changed file with 11 additions and 25 deletions.
36 changes: 11 additions & 25 deletions numpy/distutils/fcompiler/gnu.py
Expand Up @@ -202,8 +202,18 @@ def get_flags_opt(self):
opt.append('-funroll-loops')
return opt

def _c_arch_flags(self):
""" Return detected arch flags from CFLAGS """
from distutils import sysconfig
cflags = sysconfig.get_config_vars()['CFLAGS']
arch_re = re.compile(r"-arch\s+(\w+)")
arch_flags = []
for arch in arch_re.findall(cflags):
arch_flags += ['-arch', arch]
return arch_flags

def get_flags_arch(self):
return []
return self._c_arch_flags()

class Gnu95FCompiler(GnuFCompiler):
compiler_type = 'gnu95'
Expand Down Expand Up @@ -249,30 +259,6 @@ def version_match(self, version_string):

g2c = 'gfortran'

def _universal_flags(self, cmd):
"""Return a list of -arch flags for every supported architecture."""
if not sys.platform == 'darwin':
return []
arch_flags = []
for arch in ["ppc", "i686", "x86_64", "ppc64"]:
if _can_target(cmd, arch):
arch_flags.extend(["-arch", arch])
return arch_flags

def get_flags(self):
flags = GnuFCompiler.get_flags(self)
arch_flags = self._universal_flags(self.compiler_f90)
if arch_flags:
flags[:0] = arch_flags
return flags

def get_flags_linker_so(self):
flags = GnuFCompiler.get_flags_linker_so(self)
arch_flags = self._universal_flags(self.linker_so)
if arch_flags:
flags[:0] = arch_flags
return flags

def get_library_dirs(self):
opt = GnuFCompiler.get_library_dirs(self)
if sys.platform == 'win32':
Expand Down

0 comments on commit 658a1dc

Please sign in to comment.