diff options
author | Steven Knight <knight@baldmt.com> | 2008-04-19 02:11:31 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2008-04-19 02:11:31 (GMT) |
commit | 4cfc36d83282c18477cab0a5fbb1e01a5be13769 (patch) | |
tree | 6b0dbeb7be16e532a3ac980cd848458fd02dbe8b /src/engine/SCons/Tool/f90.py | |
parent | 12ced93c8d443babcf3ba0c0a3503ed6a8fed2d9 (diff) | |
download | SCons-4cfc36d83282c18477cab0a5fbb1e01a5be13769.zip SCons-4cfc36d83282c18477cab0a5fbb1e01a5be13769.tar.gz SCons-4cfc36d83282c18477cab0a5fbb1e01a5be13769.tar.bz2 |
Merged revisions 2867-2879 via svnmerge from
http://scons.tigris.org/svn/scons/branches/core
................
r2875 | stevenknight | 2008-04-17 21:33:00 -0700 (Thu, 17 Apr 2008) | 4 lines
Fix the script that looks for uncaught KeyboardInterrupt exceptions to
expect specific numbers of these from the modules that were recently
modified to handle KeyboardInterrupt exceptions differently.
................
r2877 | stevenknight | 2008-04-18 17:31:14 -0700 (Fri, 18 Apr 2008) | 3 lines
Fix how the packaging tests look for the build packages (I hope,
we'll know once it gets through buildbot).
................
r2879 | stevenknight | 2008-04-18 18:43:56 -0700 (Fri, 18 Apr 2008) | 352 lines
Merged revisions 2777,2779-2873,2875 via svnmerge from
http://scons.tigris.org/svn/scons/branches/fortran_refactor
........
r2779 | cournape | 2008-04-14 20:52:08 -0700 (Mon, 14 Apr 2008) | 1 line
Fix tool detection in unit tests for F77 dialect.
........
r2780 | cournape | 2008-04-14 21:02:25 -0700 (Mon, 14 Apr 2008) | 1 line
Fix tool detection in unit tests for FORTRAN dialect.
........
r2781 | cournape | 2008-04-14 21:18:40 -0700 (Mon, 14 Apr 2008) | 1 line
Fix tool detection in unit tests for F90 dialect.
........
r2782 | cournape | 2008-04-14 21:32:49 -0700 (Mon, 14 Apr 2008) | 1 line
Fix tool detection in unit tests for F95 dialect.
........
r2783 | cournape | 2008-04-14 21:34:31 -0700 (Mon, 14 Apr 2008) | 1 line
Fix *F77FLAGS tool detection.
........
r2784 | cournape | 2008-04-14 21:35:15 -0700 (Mon, 14 Apr 2008) | 1 line
Do not harcode F77 compiler for unit test.
........
r2785 | cournape | 2008-04-14 21:35:48 -0700 (Mon, 14 Apr 2008) | 1 line
Do not harcode FORTRAN compiler for unit test.
........
r2786 | cournape | 2008-04-14 21:39:33 -0700 (Mon, 14 Apr 2008) | 1 line
Fix tool detection for *FORTRANFLAGS unit test.
........
r2787 | cournape | 2008-04-14 21:40:17 -0700 (Mon, 14 Apr 2008) | 1 line
Fix escaping of fc in F95 unit test.
........
r2791 | cournape | 2008-04-14 22:34:52 -0700 (Mon, 14 Apr 2008) | 1 line
Refactor emitter for all fortran dialects, such as the same function is used everywhere.
........
r2792 | cournape | 2008-04-14 22:37:20 -0700 (Mon, 14 Apr 2008) | 1 line
Add new FortranCommon python module in Tools to MANIFEST.in.
........
r2793 | cournape | 2008-04-14 22:44:28 -0700 (Mon, 14 Apr 2008) | 1 line
Add a function to create all function list generator in a dialect independant way.
........
r2794 | cournape | 2008-04-14 22:47:45 -0700 (Mon, 14 Apr 2008) | 1 line
Use dialect independant vlg creation in all fortran dialect tools.
........
r2795 | cournape | 2008-04-14 22:49:50 -0700 (Mon, 14 Apr 2008) | 1 line
Add a dialect independant function to create actions vlg.
........
r2796 | cournape | 2008-04-14 22:50:21 -0700 (Mon, 14 Apr 2008) | 1 line
Use dialect independant action vlg creator in FORTRAN dialect.
........
r2797 | cournape | 2008-04-14 22:51:44 -0700 (Mon, 14 Apr 2008) | 1 line
Use dialect independant action vlg creator in F77 dialect.
........
r2798 | cournape | 2008-04-14 22:52:00 -0700 (Mon, 14 Apr 2008) | 1 line
Use dialect independant action vlg creator in F90 dialect.
........
r2799 | cournape | 2008-04-14 22:52:20 -0700 (Mon, 14 Apr 2008) | 1 line
Use dialect independant action vlg creator in F95 dialect.
........
r2800 | cournape | 2008-04-14 22:54:18 -0700 (Mon, 14 Apr 2008) | 1 line
Add function to create all construction variables for every dialect.
........
r2801 | cournape | 2008-04-14 22:56:05 -0700 (Mon, 14 Apr 2008) | 1 line
f77 tool now uses common implementation for add_to_env.
........
r2802 | cournape | 2008-04-14 22:57:30 -0700 (Mon, 14 Apr 2008) | 1 line
f90 tool now uses common implementation for add_to_env.
........
r2803 | cournape | 2008-04-14 22:58:13 -0700 (Mon, 14 Apr 2008) | 1 line
f95 tool now uses common implementation for add_to_env.
........
r2804 | cournape | 2008-04-14 23:00:35 -0700 (Mon, 14 Apr 2008) | 1 line
fortran tool now uses common implementation for add_to_env.
........
r2805 | cournape | 2008-04-14 23:10:41 -0700 (Mon, 14 Apr 2008) | 1 line
Handle fortran sources in smart_link in a way similar to C++; we launch an exception if both C++ and fortran sources are used, because this cannot be handled easily in this scheme.
........
r2806 | cournape | 2008-04-14 23:17:54 -0700 (Mon, 14 Apr 2008) | 1 line
Use f95 specific suffix for F95 compiled unit tests (.f95 instead of .f), plus minor typo to make all F95* tests pass.
........
r2807 | cournape | 2008-04-15 00:47:59 -0700 (Tue, 15 Apr 2008) | 1 line
Refactor mylink.py generation in fortran tests.
........
r2808 | cournape | 2008-04-15 00:51:11 -0700 (Tue, 15 Apr 2008) | 1 line
Forgot to add new common.py for code shared by all fortran tests.
........
r2809 | cournape | 2008-04-15 02:08:44 -0700 (Tue, 15 Apr 2008) | 1 line
Add a F77FILESUFFIXES and F77PPFILESUFFIXES construction variable to control F77 dialect file extension.
........
r2810 | cournape | 2008-04-15 02:22:26 -0700 (Tue, 15 Apr 2008) | 1 line
Add a FORTRANFILESUFFIXES and FORTRANPPFILESUFFIXES construction variable to control FORTRAN dialect file extension.
........
r2811 | cournape | 2008-04-15 02:38:11 -0700 (Tue, 15 Apr 2008) | 1 line
Add a F90FILESUFFIXES and F90PPFILESUFFIXES construction variable to control F90 dialect file extension.
........
r2812 | cournape | 2008-04-15 02:46:31 -0700 (Tue, 15 Apr 2008) | 1 line
Add a F95FILESUFFIXES and F95PPFILESUFFIXES construction variable to control F95 dialect file extension.
........
r2813 | cournape | 2008-04-15 04:23:25 -0700 (Tue, 15 Apr 2008) | 1 line
Add tool list initialization for unit test.
........
r2814 | cournape | 2008-04-15 05:16:28 -0700 (Tue, 15 Apr 2008) | 1 line
Remove use of variable list generator in fortran support. FORTRAN is the default dialect, and its cvar are created by every dialect tool.
........
r2815 | cournape | 2008-04-15 05:18:00 -0700 (Tue, 15 Apr 2008) | 1 line
Fix FORTRAN* and SHFORTRAN* tests.
........
r2816 | cournape | 2008-04-15 05:38:46 -0700 (Tue, 15 Apr 2008) | 1 line
Forgot to generate F95* cvar in f95 tool.
........
r2819 | cournape | 2008-04-15 15:14:58 -0700 (Tue, 15 Apr 2008) | 1 line
Put cvar construction add_to_env func in FortranCommon for all dialect; all dialect cvar are always created for all tools.
........
r2820 | cournape | 2008-04-15 15:34:32 -0700 (Tue, 15 Apr 2008) | 1 line
Fix unit tests for F77* and SHF77* cvar.
........
r2821 | cournape | 2008-04-15 15:38:26 -0700 (Tue, 15 Apr 2008) | 1 line
Fix unit tests for F90* and SHF90* cvar.
........
r2822 | cournape | 2008-04-15 15:43:47 -0700 (Tue, 15 Apr 2008) | 1 line
Fix unit tests for F95* and SHF95* cvar.
........
r2823 | cournape | 2008-04-15 15:50:41 -0700 (Tue, 15 Apr 2008) | 1 line
Fix compiler name setting in dialect fortran tools.
........
r2824 | cournape | 2008-04-15 15:56:57 -0700 (Tue, 15 Apr 2008) | 1 line
Fix -fPIC for g77 tool.
........
r2825 | cournape | 2008-04-15 16:07:03 -0700 (Tue, 15 Apr 2008) | 1 line
Set compiler name in g77 tool for supported dialects.
........
r2826 | cournape | 2008-04-15 18:10:18 -0700 (Tue, 15 Apr 2008) | 1 line
Fix F77PATH unit test.
........
r2827 | cournape | 2008-04-15 18:11:58 -0700 (Tue, 15 Apr 2008) | 1 line
Fix typo in f90.py tool.
........
r2828 | cournape | 2008-04-15 18:16:22 -0700 (Tue, 15 Apr 2008) | 1 line
Adapt gfortran tool to new fortran support.
........
r2829 | cournape | 2008-04-15 18:22:44 -0700 (Tue, 15 Apr 2008) | 1 line
Adapt ifort tool to new fortran support.
........
r2830 | cournape | 2008-04-15 18:28:50 -0700 (Tue, 15 Apr 2008) | 1 line
Update cvar set by gfortran tool in xml doc.
........
r2831 | cournape | 2008-04-15 18:31:43 -0700 (Tue, 15 Apr 2008) | 1 line
Update ifort tool, and add cvar doc in xml doc.
........
r2832 | cournape | 2008-04-15 18:40:51 -0700 (Tue, 15 Apr 2008) | 1 line
Change fortran tool search order on gnu platforms: first search gfortran, then g77, etc...
........
r2833 | cournape | 2008-04-15 18:42:04 -0700 (Tue, 15 Apr 2008) | 1 line
Add Sun f77 tool sunf77.
........
r2834 | cournape | 2008-04-15 18:43:40 -0700 (Tue, 15 Apr 2008) | 1 line
Fix typo in sunf77 doc.
........
r2835 | cournape | 2008-04-15 18:46:38 -0700 (Tue, 15 Apr 2008) | 1 line
Add Sun f90 tool sunf90.
........
r2836 | cournape | 2008-04-15 18:47:39 -0700 (Tue, 15 Apr 2008) | 1 line
Add Sun f95 tool sunf95.
........
r2837 | cournape | 2008-04-15 18:50:04 -0700 (Tue, 15 Apr 2008) | 1 line
Change tool order for fortran compilers on sun OS: use sun specific compilers first, and add gfortran to the list.
........
r2838 | cournape | 2008-04-15 18:50:48 -0700 (Tue, 15 Apr 2008) | 1 line
Change tool order on win32 for fortran compilers: use gfortran before g77.
........
r2839 | cournape | 2008-04-15 18:51:23 -0700 (Tue, 15 Apr 2008) | 1 line
Use gfortran first if available on mac os X.
........
r2840 | cournape | 2008-04-15 18:52:09 -0700 (Tue, 15 Apr 2008) | 1 line
Add sun fortran compilers to the tool list in the manpage.
........
r2841 | cournape | 2008-04-15 18:58:55 -0700 (Tue, 15 Apr 2008) | 1 line
Add new sun fortran compilers tools to the MANIFEST.in
........
r2842 | cournape | 2008-04-15 19:07:18 -0700 (Tue, 15 Apr 2008) | 1 line
Fix typo for sun fortran compiler pic flags.
........
r2843 | cournape | 2008-04-15 20:07:32 -0700 (Tue, 15 Apr 2008) | 1 line
Fix order issue in one f90 unit test.
........
r2844 | cournape | 2008-04-15 20:16:21 -0700 (Tue, 15 Apr 2008) | 1 line
Fix order issues in one f95 unit test.
........
r2845 | cournape | 2008-04-15 23:47:07 -0700 (Tue, 15 Apr 2008) | 1 line
Add fortran specific prefix/suffix include flags: this is useful when e.g. mixing VS and mingw fortran compiler.
........
r2846 | cournape | 2008-04-16 00:27:38 -0700 (Wed, 16 Apr 2008) | 1 line
Set stderr=None on solaris for fortran unit tests because f77 always put junk on stderr.
........
r2847 | cournape | 2008-04-16 00:47:04 -0700 (Wed, 16 Apr 2008) | 1 line
Do not use fortran_lib anymore in FORTRANPATH unit test.
........
r2848 | cournape | 2008-04-16 01:16:23 -0700 (Wed, 16 Apr 2008) | 1 line
Set stderr to None on solaris for FORTRANPATH test.
........
r2849 | cournape | 2008-04-16 03:50:35 -0700 (Wed, 16 Apr 2008) | 1 line
Fix sun fortran compilers detection.
........
r2852 | cournape | 2008-04-16 16:57:44 -0700 (Wed, 16 Apr 2008) | 1 line
Add a shobj_ variable for shared object preffix (needed for tests on solaris).
........
r2853 | cournape | 2008-04-16 17:15:52 -0700 (Wed, 16 Apr 2008) | 1 line
Fix some typo for shobj_ in qmtest.
........
r2854 | cournape | 2008-04-16 17:17:43 -0700 (Wed, 16 Apr 2008) | 1 line
Handle shared object prefix in SHFORTRAN test + KPIC flag for solaris.
........
r2855 | cournape | 2008-04-16 17:28:59 -0700 (Wed, 16 Apr 2008) | 1 line
Add shobj_prefix for all platforms.
........
r2856 | cournape | 2008-04-16 17:33:15 -0700 (Wed, 16 Apr 2008) | 1 line
Fix shared object fortran unit test for solaris.
........
r2857 | cournape | 2008-04-16 17:37:14 -0700 (Wed, 16 Apr 2008) | 1 line
Fix shared object prefix to make fortran unit test pass on solaris.
........
r2858 | cournape | 2008-04-16 17:38:28 -0700 (Wed, 16 Apr 2008) | 1 line
Use TestSCons facility to get shared object suffix.
........
r2859 | cournape | 2008-04-16 17:42:50 -0700 (Wed, 16 Apr 2008) | 1 line
Handl shared object prefix in fortran unit test for solaris.
........
r2860 | cournape | 2008-04-16 17:54:27 -0700 (Wed, 16 Apr 2008) | 1 line
Handle shared object prefix in some fortran unit test.
........
r2861 | cournape | 2008-04-16 17:55:58 -0700 (Wed, 16 Apr 2008) | 1 line
Fix typo: put shared object prefix at wrong place.
........
r2862 | cournape | 2008-04-16 18:00:42 -0700 (Wed, 16 Apr 2008) | 1 line
More fix for fortran unit tests on solaris: handle -KPIC flag in wrappers.
........
r2863 | cournape | 2008-04-16 18:03:00 -0700 (Wed, 16 Apr 2008) | 1 line
Fix SHF77FLAGS test on solaris.
........
r2864 | cournape | 2008-04-16 18:07:39 -0700 (Wed, 16 Apr 2008) | 1 line
More fix for f90 unit test on solaris.
........
r2865 | cournape | 2008-04-16 18:08:58 -0700 (Wed, 16 Apr 2008) | 1 line
Fix f95 unit test on solaris.
........
r2867 | cournape | 2008-04-16 18:38:17 -0700 (Wed, 16 Apr 2008) | 1 line
More fortran unit test fixes for solaris.
........
r2869 | cournape | 2008-04-17 06:42:25 -0700 (Thu, 17 Apr 2008) | 1 line
Fix SHFORTRAN definition issues for g77, gfortran, ifort and ifl.
........
r2870 | cournape | 2008-04-17 06:43:24 -0700 (Thu, 17 Apr 2008) | 1 line
Fix SHFORTRAN definition issues for sun fortran compilers.
........
r2871 | stevenknight | 2008-04-17 18:16:55 -0700 (Thu, 17 Apr 2008) | 3 lines
Test SH{F77,FORTRAN}FLAGS.py by appending the custom test flags,
not overwriting the -fPIC value that the tools now initialize.
........
r2872 | stevenknight | 2008-04-17 18:22:24 -0700 (Thu, 17 Apr 2008) | 4 lines
Fix the SH{F90,F95}FLAGS.py test scripts as well by appending our custom
values to the SH*FLAGS values, so we don't overwrite the -fPIC value
necessary for building on 64-bit Linux systems.
........
r2873 | stevenknight | 2008-04-17 19:08:43 -0700 (Thu, 17 Apr 2008) | 2 lines
Remove left-over fortran.* lines.
........
................
Diffstat (limited to 'src/engine/SCons/Tool/f90.py')
-rw-r--r-- | src/engine/SCons/Tool/f90.py | 92 |
1 files changed, 8 insertions, 84 deletions
diff --git a/src/engine/SCons/Tool/f90.py b/src/engine/SCons/Tool/f90.py index fab4ccb..4eb8f7c 100644 --- a/src/engine/SCons/Tool/f90.py +++ b/src/engine/SCons/Tool/f90.py @@ -37,96 +37,20 @@ import SCons.Defaults import SCons.Scanner.Fortran import SCons.Tool import SCons.Util -import fortran +from SCons.Tool.FortranCommon import add_all_to_env, add_f90_to_env compilers = ['f90'] -# -F90Suffixes = ['.f90'] -F90PPSuffixes = [] -if SCons.Util.case_sensitive_suffixes('.f90', '.F90'): - F90PPSuffixes.append('.F90') -else: - F90Suffixes.append('.F90') - -# -F90Scan = SCons.Scanner.Fortran.FortranScan("F90PATH") - -for suffix in F90Suffixes + F90PPSuffixes: - SCons.Tool.SourceFileScanner.add_scanner(suffix, F90Scan) -del suffix - -# -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 ', '$_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.""" - env.AppendUnique(FORTRANSUFFIXES = F90Suffixes + F90PPSuffixes) - - static_obj, shared_obj = SCons.Tool.createObjBuilders(env) - - for suffix in F90Suffixes: - static_obj.add_action(suffix, F90Action) - shared_obj.add_action(suffix, ShF90Action) - static_obj.add_emitter(suffix, fortran.FortranEmitter) - shared_obj.add_emitter(suffix, fortran.ShFortranEmitter) - - for suffix in F90PPSuffixes: - static_obj.add_action(suffix, F90PPAction) - shared_obj.add_action(suffix, ShF90PPAction) - static_obj.add_emitter(suffix, fortran.FortranEmitter) - shared_obj.add_emitter(suffix, fortran.ShFortranEmitter) - - 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, TARGET, SOURCE)} $)' - env['_F90COMD'] = '$_F90G -o $TARGET -c $_F90FLAGSG $_F90INCFLAGS $_FORTRANMODFLAG $SOURCES' - env['_F90PPCOMD'] = '$_F90G -o $TARGET -c $_F90FLAGSG $CPPFLAGS $_CPPDEFFLAGS $_F90INCFLAGS $_FORTRANMODFLAG $SOURCES' - env['_SHF90COMD'] = '$_SHF90G -o $TARGET -c $_SHF90FLAGSG $_F90INCFLAGS $_FORTRANMODFLAG $SOURCES' - env['_SHF90PPCOMD'] = '$_SHF90G -o $TARGET -c $_SHF90FLAGSG $CPPFLAGS $_CPPDEFFLAGS $_F90INCFLAGS $_FORTRANMODFLAG $SOURCES' - def generate(env): - fortran.add_to_env(env) - - import f77 - f77.add_to_env(env) + add_all_to_env(env) + add_f90_to_env(env) - add_to_env(env) + fc = env.Detect(compilers) or 'f90' + env['F90'] = fc + env['SHF90'] = fc - env['_FORTRAND'] = env.Detect(compilers) or 'f90' + env['FORTRAN'] = fc + env['SHFORTRAN'] = fc def exists(env): return env.Detect(compilers) |