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