/[MITgcm]/MITgcm/tools/genmake2
ViewVC logotype

Diff of /MITgcm/tools/genmake2

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

revision 1.231 by jmc, Fri Jul 6 18:55:13 2012 UTC revision 1.232 by jahn, Fri Aug 10 17:59:13 2012 UTC
# Line 1029  EOF Line 1029  EOF
1029      echo " --> set HAVE_NETCDF='$HAVE_NETCDF'" >> $LOGFILE      echo " --> set HAVE_NETCDF='$HAVE_NETCDF'" >> $LOGFILE
1030  }  }
1031    
1032    check_lapack_libs()  {
1033        if test ! "x$SKIP_LAPACK_CHECK" = x ; then
1034            return
1035        fi
1036        echo >> $LOGFILE
1037        echo "running: check_lapack_libs()" >> $LOGFILE
1038        cat <<EOF > genmake_tla.F
1039          program fgenla
1040          integer info
1041          integer ipiv( 2 )
1042          double precision ab( 4, 2 ), b( 2 )
1043          data ab / 0., 0., 1., 2., 0., 2., 1., 0. /
1044          data b / 1., 1. /
1045          call dgbsv( 2, 1, 1, 1, ab, 4, ipiv, b, 2, info )
1046          IF (info .NE. 0) write(*,*) 'Error:', info
1047          write(*,*) b
1048          end
1049    EOF
1050        echo "===  genmake_tla.F  >>>" > genmake_tla.log
1051        cat genmake_tla.F >> genmake_tla.log
1052        echo "<<<  genmake_tla.F  ===" >> genmake_tla.log
1053        RET_CPP=f
1054        COMM="cat genmake_tla.F | $CPP $DEFINES $INCLUDES"
1055        echo "$COMM" >> genmake_tla.log
1056        eval $COMM > genmake_tla.$FS 2>/dev/null  &&  RET_CPP=t
1057        if test "x$RET_CPP" = xf ; then
1058            echo "  WARNING: CPP failed to pre-process the lapack test." \
1059                >> genmake_tla.log
1060            echo "    Please check that \$INCLUDES is properly set." \
1061                >> genmake_tla.log
1062        fi
1063        echo "$FC $FFLAGS $FOPTIM -c genmake_tla.$FS  \ " >> genmake_tla.log
1064        echo "  &&  $LINK $FFLAGS $FOPTIM -o genmake_tla.o $LIBS" >> genmake_tla.log
1065        $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1  \
1066            &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS >> genmake_tla.log 2>&1
1067        RET_COMPILE=$?
1068        cat genmake_tla.log >> $LOGFILE
1069    
1070        # test program execution not always possible (see check_netcdf_libs)
1071        #
1072        #test -x ./genmake_tla  &&  ./genmake_tla >> genmake_tla.log 2>&1
1073        #RETVAL=$?
1074        #if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
1075    
1076        if test "x$RET_COMPILE" = x0 ; then
1077            HAVE_LAPACK=t
1078            echo "check_lapack: successful" >> $LOGFILE
1079        else
1080            # try again with "-llapack" added to the libs
1081            echo "==> try again with added '-llapack'" > genmake_tla.log
1082            echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log
1083            echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log
1084            echo " &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack" >> genmake_tla.log
1085            cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null  \
1086                &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1  \
1087                &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack >> genmake_tla.log 2>&1
1088            RET_COMPILE=$?
1089            echo >> $LOGFILE
1090            cat genmake_tla.log >> $LOGFILE
1091            if test "x$RET_COMPILE" = x0 ; then
1092                LIBS="$LIBS -llapack"
1093                HAVE_LAPACK=t
1094                echo "check_lapack: successful" >> $LOGFILE
1095            else
1096            # try again with "-lf77blas -lcblas" added to the libs
1097                echo "==> try again with added '-llapack -lf77blas -lcblas'" > genmake_tla.log
1098                echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log
1099                echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log
1100                echo " &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas" >> genmake_tla.log
1101                cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null  \
1102                    &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1  \
1103                    &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas >> genmake_tla.log 2>&1
1104                RET_COMPILE=$?
1105                echo >> $LOGFILE
1106                cat genmake_tla.log >> $LOGFILE
1107                if test "x$RET_COMPILE" = x0 ; then
1108                    LIBS="$LIBS -llapack -lf77blas -lcblas"
1109                    HAVE_LAPACK=t
1110                    echo "check_lapack: successful" >> $LOGFILE
1111                else
1112                # try again with "-latlas" added to the libs
1113                    echo "==> try again with added '-llapack -lf77blas -lcblas -latlas'" > genmake_tla.log
1114                    echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log
1115                    echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log
1116                    echo " &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas -latlas" >> genmake_tla.log
1117                    cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null  \
1118                        &&  $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1  \
1119                        &&  $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas -latlas >> genmake_tla.log 2>&1
1120                    RET_COMPILE=$?
1121                    echo >> $LOGFILE
1122                    cat genmake_tla.log >> $LOGFILE
1123                    if test "x$RET_COMPILE" = x0 ; then
1124                        LIBS="$LIBS -llapack -lf77blas -lcblas -latlas"
1125                        HAVE_LAPACK=t
1126                        echo "check_lapack: successful" >> $LOGFILE
1127                    fi
1128                fi
1129            fi
1130        fi
1131        rm -f genmake_tla*
1132        echo " --> set HAVE_LAPACK='$HAVE_LAPACK'" >> $LOGFILE
1133    }
1134    
1135    
1136  ###############################################################################  ###############################################################################
1137  #   Sequential part of script starts here  #   Sequential part of script starts here
# Line 1096  HAVE_STAT= Line 1199  HAVE_STAT=
1199  HAVE_NETCDF=  HAVE_NETCDF=
1200  HAVE_ETIME=  HAVE_ETIME=
1201  IGNORE_TIME=  IGNORE_TIME=
1202    HAVE_LAPACK=
1203    
1204  MODS=  MODS=
1205  TOOLSDIR=  TOOLSDIR=
# Line 1148  gm_s4="LN S64 LINK MAKE PACKAGES INCLUDE Line 1252  gm_s4="LN S64 LINK MAKE PACKAGES INCLUDE
1252  gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"
1253  gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK"  gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK"
1254  gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE"  gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE"
1255  gm_s8="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME"  gm_s8="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK"
1256    
1257  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
1258  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"
# Line 1808  if test "x$HAVE_NETCDF" != x ; then Line 1912  if test "x$HAVE_NETCDF" != x ; then
1912  else  else
1913      echo "no"      echo "no"
1914  fi  fi
1915    
1916    printf "  Can we create LAPACK-enabled binaries...  "
1917    check_lapack_libs
1918    if test "x$HAVE_LAPACK" != x ; then
1919        DEFINES="$DEFINES -DHAVE_LAPACK"
1920        echo "yes"
1921    else
1922        echo "no"
1923    fi
1924  DEFINES="$DEFINES $IGNORE_TIME"  DEFINES="$DEFINES $IGNORE_TIME"
1925    
1926  if test "x$EMBED_SRC" = xt ; then  if test "x$EMBED_SRC" = xt ; then
# Line 2121  EOF Line 2234  EOF
2234      fi      fi
2235  fi  fi
2236    
2237    #  Check for package RADTRANS: if LAPACK is not available,
2238    #  then issue a warning that the direct radtrans solver is not available.
2239    if test "x$HAVE_LAPACK" != xt ; then
2240        echo " $PACKAGES " | grep ' radtrans ' > /dev/null 2>&1
2241        RETVAL=$?
2242        if test "x$RETVAL" = x0 ; then
2243            cat <<EOF
2244    *********************************************************************
2245    WARNING: the "radtrans" package was enabled but tests failed to
2246      compile LAPACK applications.  This means that the direct radtrans
2247      solver is not available and compilation will fail if it is enabled.
2248      If you want to use the direct solver, please check that:
2249    
2250      1) LAPACK is correctly installed for this compiler and
2251      2) the LIBS variable (within the "optfile") specifies the correct
2252         LAPACK library to link against.
2253    *********************************************************************
2254    EOF
2255        fi
2256    fi
2257    
2258  if  test "x${PKG_DEPEND}" != x ; then  if  test "x${PKG_DEPEND}" != x ; then
2259    echo "  applying package dependency rules"    echo "  applying package dependency rules"
2260    ck=    ck=

Legend:
Removed from v.1.231  
changed lines
  Added in v.1.232

  ViewVC Help
Powered by ViewVC 1.1.22