x11-drivers/xf86-input-wacom: arm stable wrt bug #704592
[gentoo.git] / eclass / fortran-2.eclass
index 66b81005c5a1367394d2eaddd09115f2e429f528..b871d16e3e050a3b06e63cf334b25c727b315a91 100644 (file)
@@ -1,6 +1,5 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
-# $Id$
 
 # @ECLASS: fortran-2.eclass
 # @MAINTAINER:
@@ -9,6 +8,7 @@
 # @AUTHOR:
 # Author Justin Lecher <jlec@gentoo.org>
 # Test functions provided by Sebastien Fabbro and Kacper Kowalik
+# @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.
 #
 # FORTRAN_NEED_OPENMP=1
 
+inherit toolchain-funcs
+case ${EAPI:-0} in
+       # 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
@@ -56,8 +66,6 @@ if [[ ! ${_FORTRAN_2_CLASS} ]]; then
 # If unset, we always depend on virtual/fortran.
 : ${FORTRAN_NEEDED:=always}
 
-inherit eutils toolchain-funcs
-
 for _f_use in ${FORTRAN_NEEDED}; do
        case ${_f_use} in
                always)
@@ -87,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
@@ -107,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
@@ -165,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
@@ -174,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"
@@ -188,13 +196,13 @@ _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
-       die "Currently no working fortran compiler is available"
+       eerror
+       die "Currently no working fortran compiler is available (see ${T}/_fortran_compile_test.log for information)"
 }
 
 # @FUNCTION: _fortran_test_function
@@ -245,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"
@@ -253,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
@@ -271,25 +279,10 @@ _fortran-2_pkg_setup() {
 fortran-2_pkg_setup() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       case ${EAPI:-0} in
-               0|1|2|3)
-                       eqawarn "Support for EAPI < 4 will be removed from the"
-                       eqawarn "fortran-2.eclass in until 2013-09-30."
-                       eqawarn "Please migrate your package to a higher EAPI"
-                       eqawarn "or file a bug at https://bugs.gentoo.org"
-                       _fortran-2_pkg_setup ;;
-               *)
-                       if [[ ${MERGE_TYPE} != binary ]]; then
-                               _fortran-2_pkg_setup
-                       fi
-                       ;;
-       esac
+       if [[ ${MERGE_TYPE} != binary ]]; then
+               _fortran-2_pkg_setup
+       fi
 }
 
-case ${EAPI:-0} in
-       0|1|2|3|4|5|6) EXPORT_FUNCTIONS pkg_setup ;;
-       *) die "EAPI=${EAPI} is not supported" ;;
-esac
-
 _FORTRAN_2_ECLASS=1
 fi