63 lines
1.2 KiB
Text
63 lines
1.2 KiB
Text
|
#!/bin/sh
|
||
|
|
||
|
# 13.11.2006 Volker Quetschke
|
||
|
# Test @@ recipe property.
|
||
|
# (issue 71422)
|
||
|
|
||
|
: ${DMAKEPROG:=dmake}
|
||
|
file1="mfile1.mk"
|
||
|
file2="ofile1.out"
|
||
|
tmpfiles="$file1 $file2"
|
||
|
|
||
|
trap '{ echo "trapped signal - removing temporary files" ; rm -rf $tmpfiles ; }' 1 2 3 15
|
||
|
|
||
|
trap 'rm -rf $tmpfiles' 1 2 3 15
|
||
|
|
||
|
# Remember to quote variables in generated makefiles( $ -> \$ ).
|
||
|
cat > $file1 <<EOT
|
||
|
# Test @@ recipe
|
||
|
SHELL*:=/bin/sh
|
||
|
SHELLFLAGS*:=-ce
|
||
|
|
||
|
all :
|
||
|
@@+echo someoutput > $file2
|
||
|
@@+echo something
|
||
|
EOT
|
||
|
|
||
|
output1=`eval ${DMAKEPROG} -r -f $file1`
|
||
|
result1=$?
|
||
|
if test "$output1" != ""; then
|
||
|
echo "Wrong result: $output1"
|
||
|
result1=1
|
||
|
fi
|
||
|
if test -f $file2; then
|
||
|
if test `cat $file2 ` != "someoutput"; then
|
||
|
echo "Wrong file content: `cat $file2`"
|
||
|
result1=1
|
||
|
fi
|
||
|
else
|
||
|
echo "No such file : $file2"
|
||
|
result1=1
|
||
|
fi
|
||
|
|
||
|
# Test if -vr enables the output again
|
||
|
output2=`eval ${DMAKEPROG} -vr -rf $file1`
|
||
|
result2=$?
|
||
|
if echo $output2 | grep -v 'echo someoutput > ofile1.out'; then
|
||
|
echo "Missing output: echo someoutput > ofile1.out"
|
||
|
result2=1
|
||
|
fi
|
||
|
if echo $output2 | grep -v 'something'; then
|
||
|
echo "Missing output: something"
|
||
|
result2=1
|
||
|
fi
|
||
|
|
||
|
if test $result1 -eq 0 -a $result2 -eq 0; then
|
||
|
echo "Success - Cleaning up"
|
||
|
rm -f ${tmpfiles}
|
||
|
exit 0
|
||
|
else
|
||
|
echo "Failure!"
|
||
|
exit 1
|
||
|
fi
|