diff options
Diffstat (limited to 'eclass/fortran-2.eclass')
-rw-r--r-- | eclass/fortran-2.eclass | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/eclass/fortran-2.eclass b/eclass/fortran-2.eclass index 820cbbcb49bd..b871d16e3e05 100644 --- a/eclass/fortran-2.eclass +++ b/eclass/fortran-2.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: fortran-2.eclass @@ -8,7 +8,7 @@ # @AUTHOR: # Author Justin Lecher <jlec@gentoo.org> # Test functions provided by Sebastien Fabbro and Kacper Kowalik -# @SUPPORTED_EAPIS: 4 5 6 +# @SUPPORTED_EAPIS: 4 5 6 7 # @BLURB: Simplify fortran compiler management # @DESCRIPTION: # If you need a fortran compiler, then you should be inheriting this eclass. @@ -27,13 +27,16 @@ # # FORTRAN_NEED_OPENMP=1 -inherit eutils toolchain-funcs - +inherit toolchain-funcs case ${EAPI:-0} in - 4|5|6) EXPORT_FUNCTIONS pkg_setup ;; + # not used in the eclass, but left for backward compatibility with legacy users + 4|5|6) inherit eutils ;; + 7) ;; *) die "EAPI=${EAPI} is not supported" ;; esac +EXPORT_FUNCTIONS pkg_setup + if [[ ! ${_FORTRAN_2_CLASS} ]]; then # @ECLASS-VARIABLE: FORTRAN_NEED_OPENMP @@ -92,7 +95,7 @@ unset _f_use fortran_int64_abi_fflags() { debug-print-function ${FUNCNAME} "${@}" - _FC=$(tc-getFC) + local _FC=$(tc-getFC) if [[ ${_FC} == *gfortran* ]]; then echo "-fdefault-integer-8" elif [[ ${_FC} == ifort ]]; then @@ -112,17 +115,17 @@ _fortran_write_testsuite() { local filebase=${T}/test-fortran # f77 code - cat <<- EOF > "${filebase}.f" + cat <<- EOF > "${filebase}.f" || die end EOF # f90/95 code - cat <<- EOF > "${filebase}.f90" + cat <<- EOF > "${filebase}.f90" || die end EOF # f2003 code - cat <<- EOF > "${filebase}.f03" + cat <<- EOF > "${filebase}.f03" || die procedure(), pointer :: p end EOF @@ -170,7 +173,7 @@ _fortran-has-openmp() { local ret local _fc=$(tc-getFC) - cat <<- EOF > "${fcode}" + cat <<- EOF > "${fcode}" || die call omp_get_num_threads end EOF @@ -179,7 +182,7 @@ _fortran-has-openmp() { ${_fc} ${flag} "${fcode}" -o "${fcode}.x" \ &>> "${T}"/_fortran_compile_test.log ret=$? - (( ${ret} )) || break + [[ ${ret} == 0 ]] && break done rm -f "${fcode}.x" @@ -193,12 +196,12 @@ _fortran-has-openmp() { _fortran_die_msg() { debug-print-function ${FUNCNAME} "${@}" - echo + eerror eerror "Please install currently selected gcc version with USE=fortran." eerror "If you intend to use a different compiler then gfortran, please" eerror "set FC variable accordingly and take care that the necessary" eerror "fortran dialects are supported." - echo + eerror die "Currently no working fortran compiler is available (see ${T}/_fortran_compile_test.log for information)" } @@ -250,7 +253,7 @@ _fortran-2_pkg_setup() { for _f_use in ${FORTRAN_NEEDED}; do case ${_f_use} in always) - _fortran_test_function && break + _fortran_test_function && break 2 ;; no) einfo "Forcing fortran support off" @@ -258,7 +261,7 @@ _fortran-2_pkg_setup() { ;; *) if use ${_f_use}; then - _fortran_test_function && break + _fortran_test_function && break 2 else unset FC unset F77 |