#!/bin/sh # 17.05.2006 Volker Quetschke # Check that .INIT and .DONE are not mistaken for .<suffix> targets # and that dmake warns if .<suffix> targets have prerequisites. # (issue 65333). : ${DMAKEPROG:=dmake} file1="mfile1.mk" file2="mfile2.mk" tmpfiles="$file1 $file2" trap '{ echo "trapped signal - removing temporary files" ; rm -rf $tmpfiles ; }' 1 2 3 15 # Remove files from prior failed run rm -rf $tmpfiles # Remember to quote variables in generated makefiles( $ -> \$ ). # Testcase 1 - No warning expected cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce all : +@echo "all" .INIT .DONE : something +@echo "Dummy recipe" something : +@echo "just a target" EOT # Testcase 2 - dmake should warn cat > $file2 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce .MYTARGET : something +@echo ".MYTARGET" something : +@echo "just a target" EOT output1=`eval ${DMAKEPROG} -r -f $file1 2>&1 ` result1=$? output2=`eval ${DMAKEPROG} -r -f $file2 2>&1 ` result2=$? if test "$output1" != "all"; then echo "Test 1: Wrong result: $output1" result1=1 fi if echo $output2 | grep -v 'Warning: -- Ignoring' ; then echo "Test 2: Wrong result: $output2" result2=1 fi if test $result1 -eq 0 -a $result2 -eq 0; then echo "Success - Cleaning up" rm -rf $tmpfiles exit result=0 else echo "Failure!" result=1 fi exit $result