/[gentoo-x86]/eclass/fortran-2.eclass
Gentoo

Diff of /eclass/fortran-2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.4 Revision 1.7
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 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.7 2012/10/07 12:06:54 jlec 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
36inherit toolchain-funcs 36inherit 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"
142 if [[ ${FORTRAN_NEED_OPENMP} == 1 ]]; then 144 if [[ ${FORTRAN_NEED_OPENMP} == 1 ]]; then
143 _fortran-has-openmp || \ 145 _fortran-has-openmp || \
144 die "Please install current gcc with USE=openmp or set the FC variable to a compiler that supports OpenMP" 146 die "Please install current gcc with USE=openmp or set the FC variable to a compiler that supports OpenMP"
145 fi 147 fi
146 tc-export F77 FC 148 tc-export F77 FC
149 einfo "Using following Fortran compiler"
150 einfo " F77: ${F77}"
151 einfo " FC: ${FC}"
147} 152}
148 153
149case ${EAPI:-0} in 154case ${EAPI:-0} in
150 0|1|2|3|4) EXPORT_FUNCTIONS pkg_setup ;; 155 0|1|2|3|4|5) EXPORT_FUNCTIONS pkg_setup ;;
151 *) die "EAPI=${EAPI} is not supported" ;; 156 *) die "EAPI=${EAPI} is not supported" ;;
152esac 157esac

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.20