| 1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2011 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/fortran-2.eclass,v 1.4 2011/06/21 14:11:31 jlec Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/fortran-2.eclass,v 1.5 2011/08/22 04:46:31 vapier Exp $ |
| 4 | |
|
|
| 5 | # Author Justin Lecher <jlec@gentoo.org> |
|
|
| 6 | # Test functions provided by Sebastien Fabbro and Kacper Kowalik |
|
|
| 7 | |
4 | |
| 8 | # @ECLASS: fortran-2.eclass |
5 | # @ECLASS: fortran-2.eclass |
| 9 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 10 | # jlec@gentoo.org |
7 | # jlec@gentoo.org |
| 11 | # sci@gentoo.org |
8 | # sci@gentoo.org |
|
|
9 | # @AUTHOR: |
|
|
10 | # Author Justin Lecher <jlec@gentoo.org> |
|
|
11 | # Test functions provided by Sebastien Fabbro and Kacper Kowalik |
| 12 | # @BLURB: Simplify fortran compiler management |
12 | # @BLURB: Simplify fortran compiler management |
| 13 | # @DESCRIPTION: |
13 | # @DESCRIPTION: |
| 14 | # If you need a fortran compiler, then you should be inheriting this eclass and |
14 | # If you need a fortran compiler, then you should be inheriting this eclass and |
| 15 | # adding virtual/fortran to your dependencies. |
15 | # adding virtual/fortran to your dependencies. |
| 16 | # The eclass tests for working fortran compilers |
16 | # The eclass tests for working fortran compilers |
| … | |
… | |
| 34 | : ${FORTRAN_STANDARD:=77} |
34 | : ${FORTRAN_STANDARD:=77} |
| 35 | |
35 | |
| 36 | inherit toolchain-funcs |
36 | inherit toolchain-funcs |
| 37 | |
37 | |
| 38 | # @FUNCTION: _write_testsuite |
38 | # @FUNCTION: _write_testsuite |
| 39 | # @DESCRIPTION: writes fortran test code |
|
|
| 40 | # @INTERNAL |
39 | # @INTERNAL |
|
|
40 | # @DESCRIPTION: |
|
|
41 | # writes fortran test code |
| 41 | _write_testsuite() { |
42 | _write_testsuite() { |
| 42 | local filebase=${T}/test-fortran |
43 | local filebase=${T}/test-fortran |
| 43 | |
44 | |
| 44 | # f77 code |
45 | # f77 code |
| 45 | cat <<- EOF > "${filebase}.f" |
46 | cat <<- EOF > "${filebase}.f" |
| … | |
… | |
| 57 | end |
58 | end |
| 58 | EOF |
59 | EOF |
| 59 | } |
60 | } |
| 60 | |
61 | |
| 61 | # @FUNCTION: _compile_test |
62 | # @FUNCTION: _compile_test |
|
|
63 | # @INTERNAL |
| 62 | # @DESCRIPTION: |
64 | # @DESCRIPTION: |
| 63 | # Takes fortran compiler as first argument and dialect as second. |
65 | # Takes fortran compiler as first argument and dialect as second. |
| 64 | # Checks whether the passed fortran compiler speaks the fortran dialect |
66 | # Checks whether the passed fortran compiler speaks the fortran dialect |
| 65 | # @INTERNAL |
|
|
| 66 | _compile_test() { |
67 | _compile_test() { |
| 67 | local filebase=${T}/test-fortran |
68 | local filebase=${T}/test-fortran |
| 68 | local fcomp=${1} |
69 | local fcomp=${1} |
| 69 | local fdia=${2} |
70 | local fdia=${2} |
| 70 | local fcode=${filebase}.f${fdia} |
71 | local fcode=${filebase}.f${fdia} |
| … | |
… | |
| 80 | rm -f "${fcode}.x" |
81 | rm -f "${fcode}.x" |
| 81 | return ${ret} |
82 | return ${ret} |
| 82 | } |
83 | } |
| 83 | |
84 | |
| 84 | # @FUNCTION: _fortran-has-openmp |
85 | # @FUNCTION: _fortran-has-openmp |
|
|
86 | # @INTERNAL |
| 85 | # @DESCRIPTION: |
87 | # @DESCRIPTION: |
| 86 | # See if the fortran supports OpenMP. |
88 | # See if the fortran supports OpenMP. |
| 87 | # @INTERNAL |
|
|
| 88 | _fortran-has-openmp() { |
89 | _fortran-has-openmp() { |
| 89 | local flag |
90 | local flag |
| 90 | local filebase=${T}/test-fc-openmp |
91 | local filebase=${T}/test-fc-openmp |
| 91 | local fcode=${filebase}.f |
92 | local fcode=${filebase}.f |
| 92 | local ret |
93 | local ret |
| … | |
… | |
| 106 | rm -f "${fcode}.x" |
107 | rm -f "${fcode}.x" |
| 107 | return ${ret} |
108 | return ${ret} |
| 108 | } |
109 | } |
| 109 | |
110 | |
| 110 | # @FUNCTION: _die_msg |
111 | # @FUNCTION: _die_msg |
| 111 | # @DESCRIPTION: Detailed description how to handle fortran support |
|
|
| 112 | # @INTERNAL |
112 | # @INTERNAL |
|
|
113 | # @DESCRIPTION: |
|
|
114 | # Detailed description how to handle fortran support |
| 113 | _die_msg() { |
115 | _die_msg() { |
| 114 | echo |
116 | echo |
| 115 | eerror "Please install currently selected gcc version with USE=fortran." |
117 | eerror "Please install currently selected gcc version with USE=fortran." |
| 116 | eerror "If you intend to use a different compiler then gfortran, please" |
118 | eerror "If you intend to use a different compiler then gfortran, please" |
| 117 | eerror "set FC variable accordingly and take care that the neccessary" |
119 | eerror "set FC variable accordingly and take care that the neccessary" |