1# Copyright (C) 2004 Toon Knapen
2#
3#  Use, modification and distribution is subject to the Boost Software
4#  License Version 1.0. (See accompanying file LICENSE_1_0.txt or
5#  http://www.boost.org/LICENSE_1_0.txt)
6
7#
8# This file contains common settings for all fortran tools
9#
10
11import "class" : new ;
12import feature : feature ;
13
14import type ;
15import generators ;
16import common ;
17
18type.register FORTRAN : f F for f77 ;
19type.register FORTRAN90 : f90 F90 ;
20
21feature fortran : : free ;
22feature fortran90 : : free ;
23
24class fortran-compiling-generator : generator
25{
26    rule __init__ ( id : source-types + : target-types + : requirements * : optional-properties * )
27    {
28        generator.__init__ $(id) : $(source-types) : $(target-types) : $(requirements) : $(optional-properties) ;
29    }
30}
31
32rule register-fortran-compiler ( id : source-types + : target-types + : requirements * : optional-properties * )
33{
34    local g = [ new fortran-compiling-generator $(id) : $(source-types) : $(target-types) : $(requirements) : $(optional-properties) ] ;
35    generators.register $(g) ;
36}
37
38class fortran90-compiling-generator : generator
39{
40    rule __init__ ( id : source-types + : target-types + : requirements * : optional-properties * )
41    {
42        generator.__init__ $(id) : $(source-types) : $(target-types) : $(requirements) : $(optional-properties) ;
43    }
44}
45
46rule register-fortran90-compiler ( id : source-types + : target-types + : requirements * : optional-properties * )
47{
48    local g = [ new fortran90-compiling-generator $(id) : $(source-types) : $(target-types) : $(requirements) : $(optional-properties) ] ;
49    generators.register $(g) ;
50}
51
52# FIXME: this is ugly, should find a better way (we'd want client code to
53# register all generators as "generator.some-rule", not with "some-module.some-rule".)
54IMPORT $(__name__) : register-fortran-compiler : : generators.register-fortran-compiler ;
55IMPORT $(__name__) : register-fortran90-compiler : : generators.register-fortran90-compiler ;
56