xref: /netbsd-src/external/gpl3/gcc.old/dist/libgfortran/mk-srk-inc.sh (revision 627f7eb200a4419d89b531d55fccd2ee3ffdcde0)
1*627f7eb2Smrg#!/bin/sh
2*627f7eb2Smrg
3*627f7eb2Smrgcompile="$1"
4*627f7eb2Smrgkinds=""
5*627f7eb2Smrgpossible_kinds="4 8 10 16"
6*627f7eb2Smrgc=0
7*627f7eb2Smrg
8*627f7eb2Smrgfor k in $possible_kinds; do
9*627f7eb2Smrg  echo "  real (kind=$k) :: x" > tmp$$.f90
10*627f7eb2Smrg  echo "  x = 1.0_$k" >> tmp$$.f90
11*627f7eb2Smrg  echo "  end" >> tmp$$.f90
12*627f7eb2Smrg  if $compile -S tmp$$.f90 > /dev/null 2>&1; then
13*627f7eb2Smrg    kinds="$kinds $k"
14*627f7eb2Smrg    c=`expr $c + 1`
15*627f7eb2Smrg  fi
16*627f7eb2Smrg  rm -f tmp$$.*
17*627f7eb2Smrgdone
18*627f7eb2Smrg
19*627f7eb2Smrgecho "  integer, parameter :: c = $c"
20*627f7eb2Smrgecho "  type (real_info), parameter :: real_infos(c) = (/ &"
21*627f7eb2Smrg
22*627f7eb2Smrgi=0
23*627f7eb2Smrgfor k in $kinds; do
24*627f7eb2Smrg  # echo -n is not portable
25*627f7eb2Smrg  str="    real_info ($k, precision(0.0_$k), range(0.0_$k), radix(0.0_$k))"
26*627f7eb2Smrg  i=`expr $i + 1`
27*627f7eb2Smrg  if [ $i -lt $c ]; then
28*627f7eb2Smrg    echo "$str, &"
29*627f7eb2Smrg  else
30*627f7eb2Smrg    echo "$str /)"
31*627f7eb2Smrg  fi
32*627f7eb2Smrgdone
33*627f7eb2Smrg
34*627f7eb2Smrgexit 0
35