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