summaryrefslogtreecommitdiff
path: root/waflib/Tools/fc.py
diff options
context:
space:
mode:
Diffstat (limited to 'waflib/Tools/fc.py')
-rw-r--r--waflib/Tools/fc.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/waflib/Tools/fc.py b/waflib/Tools/fc.py
index 6c3bc2a..64c479d 100644
--- a/waflib/Tools/fc.py
+++ b/waflib/Tools/fc.py
@@ -15,7 +15,15 @@ def fc_hook(self,node):
return self.create_compiled_task('fc',node)
@conf
def modfile(conf,name):
- return{'lower':name.lower()+'.mod','lower.MOD':name.lower()+'.MOD','UPPER.mod':name.upper()+'.mod','UPPER':name.upper()+'.MOD'}[conf.env.FC_MOD_CAPITALIZATION or'lower']
+ if name.find(':')>=0:
+ separator=conf.env.FC_SUBMOD_SEPARATOR or'@'
+ modpath=name.split(':')
+ modname=modpath[0]+separator+modpath[-1]
+ suffix=conf.env.FC_SUBMOD_SUFFIX or'.smod'
+ else:
+ modname=name
+ suffix='.mod'
+ return{'lower':modname.lower()+suffix.lower(),'lower.MOD':modname.lower()+suffix.upper(),'UPPER.mod':modname.upper()+suffix.lower(),'UPPER':modname.upper()+suffix.upper()}[conf.env.FC_MOD_CAPITALIZATION or'lower']
def get_fortran_tasks(tsk):
bld=tsk.generator.bld
tasks=bld.get_tasks_group(bld.get_group_idx(tsk.generator))