Home | History | Annotate | Line # | Download | only in libgfortran
mk-srk-inc.sh revision 1.1.1.1
      1  1.1  mrg #!/bin/sh
      2  1.1  mrg 
      3  1.1  mrg compile="$1"
      4  1.1  mrg kinds=""
      5  1.1  mrg possible_kinds="4 8 10 16"
      6  1.1  mrg c=0
      7  1.1  mrg 
      8  1.1  mrg for k in $possible_kinds; do
      9  1.1  mrg   echo "  real (kind=$k) :: x" > tmp$$.f90
     10  1.1  mrg   echo "  x = 1.0_$k" >> tmp$$.f90
     11  1.1  mrg   echo "  end" >> tmp$$.f90
     12  1.1  mrg   if $compile -S tmp$$.f90 > /dev/null 2>&1; then
     13  1.1  mrg     kinds="$kinds $k"
     14  1.1  mrg     c=`expr $c + 1`
     15  1.1  mrg   fi
     16  1.1  mrg   rm -f tmp$$.*
     17  1.1  mrg done
     18  1.1  mrg 
     19  1.1  mrg echo "  integer, parameter :: c = $c"
     20  1.1  mrg echo "  type (real_info), parameter :: real_infos(c) = (/ &"
     21  1.1  mrg 
     22  1.1  mrg i=0
     23  1.1  mrg for k in $kinds; do
     24  1.1  mrg   # echo -n is not portable
     25  1.1  mrg   str="    real_info ($k, precision(0.0_$k), range(0.0_$k), radix(0.0_$k))"
     26  1.1  mrg   i=`expr $i + 1`
     27  1.1  mrg   if [ $i -lt $c ]; then
     28  1.1  mrg     echo "$str, &"
     29  1.1  mrg   else
     30  1.1  mrg     echo "$str /)"
     31  1.1  mrg   fi
     32  1.1  mrg done
     33  1.1  mrg 
     34  1.1  mrg exit 0
     35