From 3287b9752aa3ac465f4e50b6f5f9b2b07c693189 Mon Sep 17 00:00:00 2001 From: Rob Boehne Date: Wed, 15 Jul 2020 15:56:04 -0500 Subject: Fix fortran tools to set SHFORTRAN variables to $FORTRAN, similarly SHF77, SHF90, SHF95, SHF03 and SHF08 will default to the variables $F77, $F90, $F95, $F03 and $F08 respectively. If you were depending on changing the value of FORTRAN (or $F[0-9][0-9]) having no effect on the value of SHFORTRAN, this change will break that. The values of FORTRAN, F77, F90, F95, F03, F08 and SHFORTRAN, SHF77 (etc.) now are not overridden in generate if alredy set by the user. --- CHANGES.txt | 6 ++++++ SCons/Tool/f03.py | 12 ++++++++---- SCons/Tool/f08.py | 12 ++++++++---- SCons/Tool/f77.py | 12 ++++++++---- SCons/Tool/f90.py | 12 ++++++++---- SCons/Tool/f95.py | 12 ++++++++---- SCons/Tool/fortran.py | 7 ++++--- 7 files changed, 50 insertions(+), 23 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 354fccd..7c189f2 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -9,6 +9,12 @@ NOTE: The 4.0.0 Release of SCons will drops Python 2.7 Support RELEASE 4.1.0.devyyyymmdd - Mon, 04 Jul 2020 16:06:40 -0700 From Rob Boehne: + - Fix fortran tools to set SHFORTRAN variables to $FORTRAN, similarly SHF77, SHF90, SHF95, + SHF03 and SHF08 will default to the variables $F77, $F90, $F95, $F03 and $F08 respectively. + If you were depending on changing the value of FORTRAN (or $F[0-9][0-9]) having no effect + on the value of SHFORTRAN, this change will break that. The values of FORTRAN, F77, F90, + F95, F03, F08 and SHFORTRAN, SHF77 (etc.) now are not overridden in generate if alredy set + by the user. - Fix subprocess execution of 'lslpp' on AIX to produce text standard i/o. - Re-do the fix for suncxx tool (Oracle Studio compiler) now that only Python 3 is supported, to avoid decoding errors. diff --git a/SCons/Tool/f03.py b/SCons/Tool/f03.py index 85774ca..41d9c43 100644 --- a/SCons/Tool/f03.py +++ b/SCons/Tool/f03.py @@ -46,11 +46,15 @@ def generate(env): add_f03_to_env(env) fcomp = env.Detect(compilers) or 'f03' - env['F03'] = fcomp - env['SHF03'] = fcomp + if 'F03' not in env: + env['F03'] = fcomp + if 'SHF03' not in env: + env['SHF03'] = '$F03' - env['FORTRAN'] = fcomp - env['SHFORTRAN'] = fcomp + if 'FORTRAN' not in env: + env['FORTRAN'] = fcomp + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): diff --git a/SCons/Tool/f08.py b/SCons/Tool/f08.py index 2939dc5..3d1bce2 100644 --- a/SCons/Tool/f08.py +++ b/SCons/Tool/f08.py @@ -46,11 +46,15 @@ def generate(env): add_f08_to_env(env) fcomp = env.Detect(compilers) or 'f08' - env['F08'] = fcomp - env['SHF08'] = fcomp + if 'F08' not in env: + env['F08'] = fcomp + if 'SHF08' not in env: + env['SHF08'] = '$F08' - env['FORTRAN'] = fcomp - env['SHFORTRAN'] = fcomp + if 'FORTRAN' not in env: + env['FORTRAN'] = fcomp + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): diff --git a/SCons/Tool/f77.py b/SCons/Tool/f77.py index 0fd58e5..b936acd 100644 --- a/SCons/Tool/f77.py +++ b/SCons/Tool/f77.py @@ -46,11 +46,15 @@ def generate(env): add_f77_to_env(env) fcomp = env.Detect(compilers) or 'f77' - env['F77'] = fcomp - env['SHF77'] = fcomp + if 'F77' not in env: + env['F77'] = fcomp + if 'SHF77' not in env: + env['SHF77'] = '$F77' - env['FORTRAN'] = fcomp - env['SHFORTRAN'] = fcomp + if 'FORTRAN' not in env: + env['FORTRAN'] = fcomp + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): return env.Detect(compilers) diff --git a/SCons/Tool/f90.py b/SCons/Tool/f90.py index 2dfb6f1..ef7d93d 100644 --- a/SCons/Tool/f90.py +++ b/SCons/Tool/f90.py @@ -46,11 +46,15 @@ def generate(env): add_f90_to_env(env) fc = env.Detect(compilers) or 'f90' - env['F90'] = fc - env['SHF90'] = fc + if 'F90' not in env: + env['F90'] = fc + if 'SHF90' not in env: + env['SHF90'] = '$F90' - env['FORTRAN'] = fc - env['SHFORTRAN'] = fc + if 'FORTRAN' not in env: + env['FORTRAN'] = fc + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): return env.Detect(compilers) diff --git a/SCons/Tool/f95.py b/SCons/Tool/f95.py index 5b99e53..7b56d4e 100644 --- a/SCons/Tool/f95.py +++ b/SCons/Tool/f95.py @@ -46,11 +46,15 @@ def generate(env): add_f95_to_env(env) fcomp = env.Detect(compilers) or 'f95' - env['F95'] = fcomp - env['SHF95'] = fcomp + if 'F95' not in env: + env['F95'] = fcomp + if 'SHF95' not in env: + env['SHF95'] = '$F95' - env['FORTRAN'] = fcomp - env['SHFORTRAN'] = fcomp + if 'FORTRAN' not in env: + env['FORTRAN'] = fcomp + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): diff --git a/SCons/Tool/fortran.py b/SCons/Tool/fortran.py index 26c6ff5..aeb9130 100644 --- a/SCons/Tool/fortran.py +++ b/SCons/Tool/fortran.py @@ -48,9 +48,10 @@ def generate(env): add_all_to_env(env) add_fortran_to_env(env) - fc = env.Detect(compilers) or 'f77' - env['SHFORTRAN'] = fc - env['FORTRAN'] = fc + if 'FORTRAN' not in env: + env['FORTRAN'] = env.Detect(compilers) or 'f77' + if 'SHFORTRAN' not in env: + env['SHFORTRAN'] = '$FORTRAN' def exists(env): return env.Detect(compilers) -- cgit v0.12