1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#!/bin/sh
# -copyright-
#-# Copyright: 2015-2025 Willem Vermin wvermin@gmail.com
#-#
#-# License: BSD-3-Clause
#-# Redistribution and use in source and binary forms, with or without
#-# modification, are permitted provided that the following conditions
#-# are met:
#-# 1. Redistributions of source code must retain the above copyright
#-# notice, this list of conditions and the following disclaimer.
#-# 2. Redistributions in binary form must reproduce the above copyright
#-# notice, this list of conditions and the following disclaimer in the
#-# documentation and/or other materials provided with the distribution.
#-# 3. Neither the name of the copyright holder nor the names of its
#-# contributors may be used to endorse or promote products derived
#-# from this software without specific prior written permission.
#-#
#-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
#-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
#-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
#-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
export FINDENT_FLAGS="$TEST_FINDENT_FLAGS"
prog="$1"
echo "$0: $prog"
if test "x$FC" = x ; then
gfortran=:
echo "will not try to compile fortran sources"
else
gfortran="$FC"
echo "will try to compile fortran sources using $gfortran"
fi
rc=0
exe=${FINDENT:-../src/findent}
$exe -v
bprog="`basename $prog`"
rm -f "bprog.try.f"
echo -n "$bprog: "
case "$bprog" in
*progfixed*)
format="-ffixed-form -ffixed-line-length-none -fd-lines-as-comments"
;;
*)
format="-ffree-form -ffree-line-length-none"
;;
esac
$gfortran -fcoarray=single -cpp -fopenmp $format -o prog $prog >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo -n " original program does not compile using: -fcoarray=single -cpp -fopenmp $format -o prog $prog "
rc=1
fi
parms=`head -n1 < $prog | tr '!' ' '|tr '\r' ' '`
$exe $parms < $prog > $bprog.try.f 2>/dev/null
if [ -f $prog.try.f.ref ]; then
if [ "$CROSSCOMPILE" = yes ] ; then
case $prog in
*dos*)
:
;;
*)
tmpfile=`mktemp`
tr -d '\r' < $bprog.try.f > $tmpfile
mv $tmpfile $bprog.try.f
;;
esac
fi
cmp -s $bprog.try.f $prog.try.f.ref >/dev/null 2>&1
if [ "$?" -eq 0 ]; then
echo -n "OK"
else
echo -n "WRONG"
rc=1
fi
echo
else
echo "cannot compare"
rc=1
fi
case "$bprog" in
*free.f | *free1.f | *free-dos.f)
format="-ffree-form -ffree-line-length-none"
;;
*)
format="-ffixed-form -ffixed-line-length-none -fd-lines-as-comments"
;;
esac
$gfortran -fcoarray=single -cpp -fopenmp $format -o prog $bprog.try.f >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo " converted program does not compile using: -fcoarray=single -cpp -fopenmp $format -o prog $bprog.try.f "
rc=1
fi
echo "END TESTING FINDENT rc=$rc"
if [ $rc -ne 0 ] ; then
echo "If you are sure $PWD/$bprog.try.f is correct:"
echo "copy $PWD/$bprog.try.f"
echo "to the corresponding .in file in the test directory"
echo " and configure again."
fi
rm -f prog
exit $rc
|