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