From f65da5d277e78bd25dc064dd5f46e6bebc8650d9 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Wed, 15 Feb 2012 18:06:50 +0000 Subject: [PATCH] Fixed compilation of the Fortran 90 module --- SConstruct | 9 +++++---- src/fortran/SConscript | 22 +++++++--------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/SConstruct b/SConstruct index d95398a6a..0d9051caf 100644 --- a/SConstruct +++ b/SConstruct @@ -887,13 +887,14 @@ Export('env', 'buildDir', 'buildTargets', 'libraryTargets', VariantDir('build/ext', 'ext', duplicate=0) SConscript('build/ext/SConscript') +# Fortran needs to come before src so that libraryTargets is fully populated +if env['f90_interface'] == 'y': + VariantDir('build/src/fortran/', 'src/fortran', duplicate=1) + SConscript('build/src/fortran/SConscript') + VariantDir('build/src', 'src', duplicate=0) SConscript('build/src/SConscript') -if env['f90_interface'] == 'y': - VariantDir('build/fortran/', 'src/fortran', duplicate=1) - SConscript('build/src/fortran/SConscript') - if env['python_package'] in ('full','minimal'): SConscript('src/python/SConscript') diff --git a/src/fortran/SConscript b/src/fortran/SConscript index be0d23f22..d5e7b5973 100644 --- a/src/fortran/SConscript +++ b/src/fortran/SConscript @@ -1,31 +1,23 @@ from buildutils import * -Import('env', 'buildTargets', 'installTargets', 'demoTargets') +Import('env', 'buildTargets', 'installTargets', 'demoTargets', 'libraryTargets') localenv = env.Clone() +localenv.Append(CPPPATH=['#include', '#src']) -f90_src = mglob(localenv, 'src', 'f90', 'cpp') +f90_src = mglob(localenv, '.', 'f90', 'cpp') artifacts = localenv.Object(f90_src) mods = [o for o in artifacts if o.path.endswith('.mod')] -objs = [o for o in artifacts if not o.path.endswith('.mod')] +objects = [o for o in artifacts if not o.path.endswith('.mod')] -lib = localenv.Library(target=pjoin('..','..','lib','fct'), - source=objs) +lib = localenv.Library(target=pjoin('..','..','lib','cantera_fortran'), + source=objects) buildTargets.extend(lib) inst = localenv.Install('$inst_libdir', lib) installTargets.extend(inst) - installTargets.extend(localenv.Install('$inst_incdir', mods)) -# Copy the mod files to the include directory -for mod in mods: - copy = localenv.Command(target=pjoin('..','..','include','cantera', mod.name), - source=mod, - action=Copy('$TARGET', '$SOURCE')) - localenv.AddPostAction(lib, copy) - buildTargets.extend(copy) - # (subdir, program name, [source extensions]) demos = [('f77demos', 'ctlib', ['^ctlib.f']), ('f77demos', 'isentropic', ['^isentropic.f'])] @@ -34,7 +26,7 @@ ftn_demo = localenv.Object(pjoin('f77demos','demo_ftnlib.cpp')) for subdir, name, extensions in demos: prog = localenv.Program(pjoin(subdir, name), mglob(localenv, subdir, *extensions) + ftn_demo, - LIBS=env['cantera_libs']+['fct']+['stdc++'], + LIBS=env['cantera_libs']+['cantera_fortran']+['stdc++'], LINK='$F77') demoTargets.extend(prog)