diff options
Diffstat (limited to 'libgfortran/mk-srk-inc.sh')
-rwxr-xr-x | libgfortran/mk-srk-inc.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libgfortran/mk-srk-inc.sh b/libgfortran/mk-srk-inc.sh new file mode 100755 index 000000000..402441ce6 --- /dev/null +++ b/libgfortran/mk-srk-inc.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +compile="$1" +kinds="" +possible_kinds="4 8 10 16" +c=0 + +for k in $possible_kinds; do + echo " real (kind=$k) :: x" > tmp$$.f90 + echo " x = 1.0_$k" >> tmp$$.f90 + echo " end" >> tmp$$.f90 + if $compile -S tmp$$.f90 > /dev/null 2>&1; then + kinds="$kinds $k" + c=`expr $c + 1` + fi + rm -f tmp$$.* +done + +echo " integer, parameter :: c = $c" +echo " type (real_info), parameter :: real_infos(c) = (/ &" + +i=0 +for k in $kinds; do + # echo -n is not portable + str=" real_info ($k, precision(0.0_$k), range(0.0_$k), radix(0.0_$k))" + i=`expr $i + 1` + if [ $i -lt $c ]; then + echo "$str, &" + else + echo "$str /)" + fi +done + +exit 0 |