#!/bin/sh # 10.08.2007 Volker Quetschke # Check that the .PHONY attribute works with %-targets. # (issue 66751) : ${DMAKEPROG:=dmake} file1="mfile1.mk" file2="phonyfile.a" file3="phonyfile.b" tmpfiles="$file1 $file2 $file3" 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( $ -> \$ ). cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce %.a : %.b @sleep 1 @touch \$@ @+printf " and \$@.\n" #%.b : %.b .PHONY : @touch \$@ @+printf "Build \$@" EOT touch phonyfile.a phonyfile.b # Avoid that phonyfile.a has the same time stamp as phonyfile.b after # that has been rebuild. sleep 1 output1=`eval ${DMAKEPROG} -rf $file1 phonyfile.a 2>&1 ` result1=$? if test "$output1" != "Build phonyfile.b and phonyfile.a."; then echo "Wrong result: $output1" result1=1 else echo "OK" fi if test $result1 -eq 0 ; then echo "Success - Cleaning up" rm -rf $tmpfiles exit else echo "Failure!" exit 1 fi