summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Builder.py1
-rw-r--r--src/engine/SCons/Environment.py2
-rw-r--r--src/engine/SCons/Tool/f77.py34
-rw-r--r--src/engine/SCons/Tool/f90.py34
-rw-r--r--src/engine/SCons/Tool/f95.py34
-rw-r--r--src/engine/SCons/Tool/fortran.py36
6 files changed, 88 insertions, 53 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 95c6bd2..1144dfe 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -222,6 +222,7 @@ class OverrideWarner(UserDict.UserDict):
"""
def __init__(self, dict):
UserDict.UserDict.__init__(self, dict)
+ if __debug__: logInstanceCreation(self)
self.already_warned = None
def warn(self):
if self.already_warned:
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 740297b..7de6307 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -655,6 +655,7 @@ class Base:
for key, value in kw.items():
new[key] = SCons.Util.scons_subst_once(value, self, key)
apply(clone.Replace, (), new)
+ if __debug__: logInstanceCreation(self, 'EnvironmentCopy')
return clone
def Detect(self, progs):
@@ -733,6 +734,7 @@ class Base:
for key, value in overrides.items():
new[key] = SCons.Util.scons_subst_once(value, self, key)
env._dict.update(new)
+ if __debug__: logInstanceCreation(self, 'EnvironmentOverride')
return env
else:
return self
diff --git a/src/engine/SCons/Tool/f77.py b/src/engine/SCons/Tool/f77.py
index e0473a1..87c8c9a 100644
--- a/src/engine/SCons/Tool/f77.py
+++ b/src/engine/SCons/Tool/f77.py
@@ -61,19 +61,23 @@ fVLG = fortran.VariableListGenerator
F77Generator = fVLG('F77', 'FORTRAN', '_FORTRAND')
F77FlagsGenerator = fVLG('F77FLAGS', 'FORTRANFLAGS')
F77CommandGenerator = fVLG('F77COM', 'FORTRANCOM', '_F77COMD')
+F77CommandStrGenerator = fVLG('F77COMSTR', 'FORTRANCOMSTR', '_F77COMSTRD')
F77PPCommandGenerator = fVLG('F77PPCOM', 'FORTRANPPCOM', '_F77PPCOMD')
+F77PPCommandStrGenerator = fVLG('F77PPCOMSTR', 'FORTRANPPCOMSTR', '_F77PPCOMSTRD')
ShF77Generator = fVLG('SHF77', 'SHFORTRAN', 'F77', 'FORTRAN', '_FORTRAND')
ShF77FlagsGenerator = fVLG('SHF77FLAGS', 'SHFORTRANFLAGS')
ShF77CommandGenerator = fVLG('SHF77COM', 'SHFORTRANCOM', '_SHF77COMD')
+ShF77CommandStrGenerator = fVLG('SHF77COMSTR', 'SHFORTRANCOMSTR', '_SHF77COMSTRD')
ShF77PPCommandGenerator = fVLG('SHF77PPCOM', 'SHFORTRANPPCOM', '_SHF77PPCOMD')
+ShF77PPCommandStrGenerator = fVLG('SHF77PPCOMSTR', 'SHFORTRANPPCOMSTR', '_SHF77PPCOMSTRD')
del fVLG
#
-F77Action = SCons.Action.Action('$_F77COMG ')
-F77PPAction = SCons.Action.Action('$_F77PPCOMG ')
-ShF77Action = SCons.Action.Action('$_SHF77COMG ')
-ShF77PPAction = SCons.Action.Action('$_SHF77PPCOMG ')
+F77Action = SCons.Action.Action('$_F77COMG ', '$_F77COMSTRG')
+F77PPAction = SCons.Action.Action('$_F77PPCOMG ', '$_F77PPCOMSTRG')
+ShF77Action = SCons.Action.Action('$_SHF77COMG ', '$_SHF77COMSTRG')
+ShF77PPAction = SCons.Action.Action('$_SHF77PPCOMG ', '$_SHF77PPCOMSTRG')
def add_to_env(env):
"""Add Builders and construction variables for f77 to an Environment."""
@@ -93,15 +97,19 @@ def add_to_env(env):
static_obj.add_emitter(suffix, fortran.FortranEmitter)
shared_obj.add_emitter(suffix, fortran.ShFortranEmitter)
- env['_F77G'] = F77Generator
- env['_F77FLAGSG'] = F77FlagsGenerator
- env['_F77COMG'] = F77CommandGenerator
- env['_F77PPCOMG'] = F77PPCommandGenerator
-
- env['_SHF77G'] = ShF77Generator
- env['_SHF77FLAGSG'] = ShF77FlagsGenerator
- env['_SHF77COMG'] = ShF77CommandGenerator
- env['_SHF77PPCOMG'] = ShF77PPCommandGenerator
+ env['_F77G'] = F77Generator
+ env['_F77FLAGSG'] = F77FlagsGenerator
+ env['_F77COMG'] = F77CommandGenerator
+ env['_F77PPCOMG'] = F77PPCommandGenerator
+ env['_F77COMSTRG'] = F77CommandStrGenerator
+ env['_F77PPCOMSTRG'] = F77PPCommandStrGenerator
+
+ env['_SHF77G'] = ShF77Generator
+ env['_SHF77FLAGSG'] = ShF77FlagsGenerator
+ env['_SHF77COMG'] = ShF77CommandGenerator
+ env['_SHF77PPCOMG'] = ShF77PPCommandGenerator
+ env['_SHF77COMSTRG'] = ShF77CommandStrGenerator
+ env['_SHF77PPCOMSTRG'] = ShF77PPCommandStrGenerator
env['_F77INCFLAGS'] = '$( ${_concat(INCPREFIX, F77PATH, INCSUFFIX, __env__, RDirs)} $)'
diff --git a/src/engine/SCons/Tool/f90.py b/src/engine/SCons/Tool/f90.py
index 47be38f..272f40e 100644
--- a/src/engine/SCons/Tool/f90.py
+++ b/src/engine/SCons/Tool/f90.py
@@ -61,19 +61,23 @@ fVLG = fortran.VariableListGenerator
F90Generator = fVLG('F90', 'FORTRAN', '_FORTRAND')
F90FlagsGenerator = fVLG('F90FLAGS', 'FORTRANFLAGS')
F90CommandGenerator = fVLG('F90COM', 'FORTRANCOM', '_F90COMD')
+F90CommandStrGenerator = fVLG('F90COMSTR', 'FORTRANCOMSTR', '_F90COMSTRD')
F90PPCommandGenerator = fVLG('F90PPCOM', 'FORTRANPPCOM', '_F90PPCOMD')
+F90PPCommandStrGenerator = fVLG('F90PPCOMSTR', 'FORTRANPPCOMSTR', '_F90PPCOMSTRD')
ShF90Generator = fVLG('SHF90', 'SHFORTRAN', 'F90', 'FORTRAN', '_FORTRAND')
ShF90FlagsGenerator = fVLG('SHF90FLAGS', 'SHFORTRANFLAGS')
ShF90CommandGenerator = fVLG('SHF90COM', 'SHFORTRANCOM', '_SHF90COMD')
+ShF90CommandStrGenerator = fVLG('SHF90COMSTR', 'SHFORTRANCOMSTR', '_SHF90COMSTRD')
ShF90PPCommandGenerator = fVLG('SHF90PPCOM', 'SHFORTRANPPCOM', '_SHF90PPCOMD')
+ShF90PPCommandStrGenerator = fVLG('SHF90PPCOMSTR', 'SHFORTRANPPCOMSTR', '_SHF90PPCOMSTRD')
del fVLG
#
-F90Action = SCons.Action.Action('$_F90COMG ')
-F90PPAction = SCons.Action.Action('$_F90PPCOMG ')
-ShF90Action = SCons.Action.Action('$_SHF90COMG ')
-ShF90PPAction = SCons.Action.Action('$_SHF90PPCOMG ')
+F90Action = SCons.Action.Action('$_F90COMG ', '$_F90COMSTRG')
+F90PPAction = SCons.Action.Action('$_F90PPCOMG ', '$_F90PPCOMSTRG')
+ShF90Action = SCons.Action.Action('$_SHF90COMG ', '$_SHF90COMSTRG')
+ShF90PPAction = SCons.Action.Action('$_SHF90PPCOMG ', '$_SHF90PPCOMSTRG')
def add_to_env(env):
"""Add Builders and construction variables for f90 to an Environment."""
@@ -93,15 +97,19 @@ def add_to_env(env):
static_obj.add_emitter(suffix, fortran.FortranEmitter)
shared_obj.add_emitter(suffix, fortran.ShFortranEmitter)
- env['_F90G'] = F90Generator
- env['_F90FLAGSG'] = F90FlagsGenerator
- env['_F90COMG'] = F90CommandGenerator
- env['_F90PPCOMG'] = F90PPCommandGenerator
-
- env['_SHF90G'] = ShF90Generator
- env['_SHF90FLAGSG'] = ShF90FlagsGenerator
- env['_SHF90COMG'] = ShF90CommandGenerator
- env['_SHF90PPCOMG'] = ShF90PPCommandGenerator
+ env['_F90G'] = F90Generator
+ env['_F90FLAGSG'] = F90FlagsGenerator
+ env['_F90COMG'] = F90CommandGenerator
+ env['_F90COMSTRG'] = F90CommandStrGenerator
+ env['_F90PPCOMG'] = F90PPCommandGenerator
+ env['_F90PPCOMSTRG'] = F90PPCommandStrGenerator
+
+ env['_SHF90G'] = ShF90Generator
+ env['_SHF90FLAGSG'] = ShF90FlagsGenerator
+ env['_SHF90COMG'] = ShF90CommandGenerator
+ env['_SHF90COMSTRG'] = ShF90CommandStrGenerator
+ env['_SHF90PPCOMG'] = ShF90PPCommandGenerator
+ env['_SHF90PPCOMSTRG'] = ShF90PPCommandStrGenerator
env['_F90INCFLAGS'] = '$( ${_concat(INCPREFIX, F90PATH, INCSUFFIX, __env__, RDirs)} $)'
env['_F90COMD'] = '$_F90G $_F90FLAGSG $_F90INCFLAGS $_FORTRANMODFLAG -c -o $TARGET $SOURCES'
diff --git a/src/engine/SCons/Tool/f95.py b/src/engine/SCons/Tool/f95.py
index 4f413a0..7121011 100644
--- a/src/engine/SCons/Tool/f95.py
+++ b/src/engine/SCons/Tool/f95.py
@@ -60,19 +60,23 @@ fVLG = fortran.VariableListGenerator
F95Generator = fVLG('F95', 'FORTRAN', '_FORTRAND')
F95FlagsGenerator = fVLG('F95FLAGS', 'FORTRANFLAGS')
F95CommandGenerator = fVLG('F95COM', 'FORTRANCOM', '_F95COMD')
+F95CommandStrGenerator = fVLG('F95COMSTR', 'FORTRANCOMSTR', '_F95COMSTRD')
F95PPCommandGenerator = fVLG('F95PPCOM', 'FORTRANPPCOM', '_F95PPCOMD')
+F95PPCommandStrGenerator = fVLG('F95PPCOMSTR', 'FORTRANPPCOMSTR', '_F95PPCOMSTRD')
ShF95Generator = fVLG('SHF95', 'SHFORTRAN', 'F95', 'FORTRAN', '_FORTRAND')
ShF95FlagsGenerator = fVLG('SHF95FLAGS', 'SHFORTRANFLAGS')
ShF95CommandGenerator = fVLG('SHF95COM', 'SHFORTRANCOM', '_SHF95COMD')
+ShF95CommandStrGenerator = fVLG('SHF95COMSTR', 'SHFORTRANCOMSTR', '_SHF95COMSTRD')
ShF95PPCommandGenerator = fVLG('SHF95PPCOM', 'SHFORTRANPPCOM', '_SHF95PPCOMD')
+ShF95PPCommandStrGenerator = fVLG('SHF95PPCOMSTR', 'SHFORTRANPPCOMSTR', '_SHF95PPCOMSTRD')
del fVLG
#
-F95Action = SCons.Action.Action('$_F95COMG ')
-F95PPAction = SCons.Action.Action('$_F95PPCOMG ')
-ShF95Action = SCons.Action.Action('$_SHF95COMG ')
-ShF95PPAction = SCons.Action.Action('$_SHF95PPCOMG ')
+F95Action = SCons.Action.Action('$_F95COMG ', '$_F95COMSTRG')
+F95PPAction = SCons.Action.Action('$_F95PPCOMG ', '$_F95PPCOMSTRG')
+ShF95Action = SCons.Action.Action('$_SHF95COMG ', '$_SHF95COMSTRG')
+ShF95PPAction = SCons.Action.Action('$_SHF95PPCOMG ', '$_SHF95PPCOMSTRG')
def add_to_env(env):
"""Add Builders and construction variables for f95 to an Environment."""
@@ -92,15 +96,19 @@ def add_to_env(env):
static_obj.add_emitter(suffix, fortran.FortranEmitter)
shared_obj.add_emitter(suffix, fortran.ShFortranEmitter)
- env['_F95G'] = F95Generator
- env['_F95FLAGSG'] = F95FlagsGenerator
- env['_F95COMG'] = F95CommandGenerator
- env['_F95PPCOMG'] = F95PPCommandGenerator
-
- env['_SHF95G'] = ShF95Generator
- env['_SHF95FLAGSG'] = ShF95FlagsGenerator
- env['_SHF95COMG'] = ShF95CommandGenerator
- env['_SHF95PPCOMG'] = ShF95PPCommandGenerator
+ env['_F95G'] = F95Generator
+ env['_F95FLAGSG'] = F95FlagsGenerator
+ env['_F95COMG'] = F95CommandGenerator
+ env['_F95COMSTRG'] = F95CommandStrGenerator
+ env['_F95PPCOMG'] = F95PPCommandGenerator
+ env['_F95PPCOMSTRG'] = F95PPCommandStrGenerator
+
+ env['_SHF95G'] = ShF95Generator
+ env['_SHF95FLAGSG'] = ShF95FlagsGenerator
+ env['_SHF95COMG'] = ShF95CommandGenerator
+ env['_SHF95COMSTRG'] = ShF95CommandStrGenerator
+ env['_SHF95PPCOMG'] = ShF95PPCommandGenerator
+ env['_SHF95PPCOMSTRG'] = ShF95PPCommandStrGenerator
env['_F95INCFLAGS'] = '$( ${_concat(INCPREFIX, F95PATH, INCSUFFIX, __env__, RDirs)} $)'
diff --git a/src/engine/SCons/Tool/fortran.py b/src/engine/SCons/Tool/fortran.py
index 42a597e..7f6a88b 100644
--- a/src/engine/SCons/Tool/fortran.py
+++ b/src/engine/SCons/Tool/fortran.py
@@ -94,7 +94,7 @@ def ShFortranEmitter(target, source, env):
class VariableListGenerator:
def __init__(self, *variablelist):
self.variablelist = variablelist
- def __call__(self, env, target, source, for_signature):
+ def __call__(self, env, target, source, for_signature=0):
for v in self.variablelist:
try: return env[v]
except KeyError: pass
@@ -104,30 +104,38 @@ class VariableListGenerator:
FortranGenerator = VariableListGenerator('FORTRAN', 'F77', '_FORTRAND')
FortranFlagsGenerator = VariableListGenerator('FORTRANFLAGS', 'F77FLAGS')
FortranCommandGenerator = VariableListGenerator('FORTRANCOM', 'F77COM', '_FORTRANCOMD')
+FortranCommandStrGenerator = VariableListGenerator('FORTRANCOMSTR', 'F77COMSTR', '_FORTRANCOMSTRD')
FortranPPCommandGenerator = VariableListGenerator('FORTRANPPCOM', 'F77PPCOM', '_FORTRANPPCOMD')
+FortranPPCommandStrGenerator = VariableListGenerator('FORTRANPPCOMSTR', 'F77PPCOMSTR', '_FORTRANPPCOMSTRD')
ShFortranGenerator = VariableListGenerator('SHFORTRAN', 'SHF77', 'FORTRAN', 'F77', '_FORTRAND')
ShFortranFlagsGenerator = VariableListGenerator('SHFORTRANFLAGS', 'SHF77FLAGS')
ShFortranCommandGenerator = VariableListGenerator('SHFORTRANCOM', 'SHF77COM', '_SHFORTRANCOMD')
+ShFortranCommandStrGenerator = VariableListGenerator('SHFORTRANCOMSTR', 'SHF77COMSTR', '_SHFORTRANCOMSTRD')
ShFortranPPCommandGenerator = VariableListGenerator('SHFORTRANPPCOM', 'SHF77PPCOM', '_SHFORTRANPPCOMD')
+ShFortranPPCommandStrGenerator = VariableListGenerator('SHFORTRANPPCOMSTR', 'SHF77PPCOMSTR', '_SHFORTRANPPCOMSTRD')
#
-FortranAction = SCons.Action.Action('$_FORTRANCOMG ')
-FortranPPAction = SCons.Action.Action('$_FORTRANPPCOMG ')
-ShFortranAction = SCons.Action.Action('$_SHFORTRANCOMG ')
-ShFortranPPAction = SCons.Action.Action('$_SHFORTRANPPCOMG ')
+FortranAction = SCons.Action.Action('$_FORTRANCOMG ', '$_FORTRANCOMSTRG')
+FortranPPAction = SCons.Action.Action('$_FORTRANPPCOMG ', '$_FORTRANPPCOMSTRG')
+ShFortranAction = SCons.Action.Action('$_SHFORTRANCOMG ', '$_SHFORTRANCOMSTRG')
+ShFortranPPAction = SCons.Action.Action('$_SHFORTRANPPCOMG ', '$_SHFORTRANPPCOMSTRG')
def add_to_env(env):
"""Add Builders and construction variables for Fortran to an Environment."""
- env['_FORTRANG'] = FortranGenerator
- env['_FORTRANFLAGSG'] = FortranFlagsGenerator
- env['_FORTRANCOMG'] = FortranCommandGenerator
- env['_FORTRANPPCOMG'] = FortranPPCommandGenerator
-
- env['_SHFORTRANG'] = ShFortranGenerator
- env['_SHFORTRANFLAGSG'] = ShFortranFlagsGenerator
- env['_SHFORTRANCOMG'] = ShFortranCommandGenerator
- env['_SHFORTRANPPCOMG'] = ShFortranPPCommandGenerator
+ env['_FORTRANG'] = FortranGenerator
+ env['_FORTRANFLAGSG'] = FortranFlagsGenerator
+ env['_FORTRANCOMG'] = FortranCommandGenerator
+ env['_FORTRANCOMSTRG'] = FortranCommandStrGenerator
+ env['_FORTRANPPCOMG'] = FortranPPCommandGenerator
+ env['_FORTRANPPCOMSTRG'] = FortranPPCommandStrGenerator
+
+ env['_SHFORTRANG'] = ShFortranGenerator
+ env['_SHFORTRANFLAGSG'] = ShFortranFlagsGenerator
+ env['_SHFORTRANCOMG'] = ShFortranCommandGenerator
+ env['_SHFORTRANCOMSTRG'] = ShFortranCommandStrGenerator
+ env['_SHFORTRANPPCOMG'] = ShFortranPPCommandGenerator
+ env['_SHFORTRANPPCOMSTRG'] = ShFortranPPCommandStrGenerator
env['_FORTRANINCFLAGS'] = '$( ${_concat(INCPREFIX, FORTRANPATH, INCSUFFIX, __env__, RDirs)} $)'