aboutsummaryrefslogtreecommitdiffstats
path: root/waflib/extras/fc_nfort.py
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-04-14 18:03:16 +0200
committerDavid Robillard <d@drobilla.net>2019-04-14 18:24:08 +0200
commit7887266eaf79f020dae2dd0126dbf732e167a751 (patch)
tree3a22565bc33f5b15c191d8585bc84599836c33f7 /waflib/extras/fc_nfort.py
parentee834a83860e614d565f5bb38cdfb8681ffa5f16 (diff)
parent4806680e7b17a83c14ea2b64c8ab6277a8b380b1 (diff)
downloadpugl-7887266eaf79f020dae2dd0126dbf732e167a751.tar.gz
pugl-7887266eaf79f020dae2dd0126dbf732e167a751.tar.bz2
pugl-7887266eaf79f020dae2dd0126dbf732e167a751.zip
Update autowaf
Diffstat (limited to 'waflib/extras/fc_nfort.py')
-rw-r--r--waflib/extras/fc_nfort.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/waflib/extras/fc_nfort.py b/waflib/extras/fc_nfort.py
new file mode 100644
index 0000000..c25886b
--- /dev/null
+++ b/waflib/extras/fc_nfort.py
@@ -0,0 +1,52 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# Detection of the NEC Fortran compiler for Aurora Tsubasa
+
+import re
+from waflib.Tools import fc,fc_config,fc_scan
+from waflib.Configure import conf
+from waflib.Tools.compiler_fc import fc_compiler
+fc_compiler['linux'].append('fc_nfort')
+
+@conf
+def find_nfort(conf):
+ fc=conf.find_program(['nfort'],var='FC')
+ conf.get_nfort_version(fc)
+ conf.env.FC_NAME='NFORT'
+ conf.env.FC_MOD_CAPITALIZATION='lower'
+
+@conf
+def nfort_flags(conf):
+ v=conf.env
+ v['_FCMODOUTFLAGS']=[]
+ v['FCFLAGS_DEBUG']=[]
+ v['FCFLAGS_fcshlib']=[]
+ v['LINKFLAGS_fcshlib']=[]
+ v['FCSTLIB_MARKER']=''
+ v['FCSHLIB_MARKER']=''
+
+@conf
+def get_nfort_version(conf,fc):
+ version_re=re.compile(r"nfort\s*\(NFORT\)\s*(?P<major>\d+)\.(?P<minor>\d+)\.",re.I).search
+ cmd=fc+['--version']
+ out,err=fc_config.getoutput(conf,cmd,stdin=False)
+ if out:
+ match=version_re(out)
+ else:
+ match=version_re(err)
+ if not match:
+ return(False)
+ conf.fatal('Could not determine the NEC NFORT Fortran compiler version.')
+ else:
+ k=match.groupdict()
+ conf.env['FC_VERSION']=(k['major'],k['minor'])
+
+def configure(conf):
+ conf.find_nfort()
+ conf.find_program('nar',var='AR')
+ conf.add_os_flags('ARFLAGS')
+ if not conf.env.ARFLAGS:
+ conf.env.ARFLAGS=['rcs']
+ conf.fc_flags()
+ conf.fc_add_flags()
+ conf.nfort_flags()