#!/bin/sh # 24.07.2007 Volker Quetschke # Test the :b :d :e :f macro extensions. # (issue 80009) : ${DMAKEPROG:=dmake} file1="mfile1.mk" tmpfiles="$file1" 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( $ -> \$ ). # Test 1 - Test if :f works. cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce .WINPATH:= MACRO:=/tmp/yyy.ext "/tmp/a b/xxx.ext" all : @echo f:\$(MACRO:f): EOT output1=`eval ${DMAKEPROG} -r -f $file1` result1=$? if test "$output1" != "f:yyy.ext \"xxx.ext\":"; then echo "Subtest 1: Wrong result: $output1" result1=1 else echo "Subtest 1: OK" fi # Test 2 cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce MACRO:=/tmp/yyy.ext "/tmp/a b/xxx.ext" all : @echo d:\$(MACRO:d): EOT output2=`eval ${DMAKEPROG} -r -f $file1` result2=$? if test "$output2" != "d:/tmp/ \"/tmp/a b/\":"; then echo "Subtest 2: Wrong result: $output2" result2=1 else echo "Subtest 2: OK" fi # Test 3 cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce MACRO:=/tmp/yyy.ext "/tmp/a b/xxx.ext" all : @echo e:\$(MACRO:e): EOT output3=`eval ${DMAKEPROG} -r -f $file1` result3=$? if test "$output3" != "e:.ext \".ext\":"; then echo "Subtest 3: Wrong result: $output3" result3=1 else echo "Subtest 3: OK" fi # Test 4 cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce MACRO:=/tmp/yyy.ext "/tmp/a b/xxx.ext" all : @echo b:\$(MACRO:b): EOT output4=`eval ${DMAKEPROG} -r -f $file1` result4=$? if test "$output4" != "b:yyy \"xxx\":"; then echo "Subtest 4: Wrong result: $output4" result4=1 else echo "Subtest 4: OK" fi # Test 5 cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce MACRO:=/tmp/yyy.ext "/tmp/a b/xxx.ext" all : @echo de:\$(MACRO:de): EOT output5=`eval ${DMAKEPROG} -r -f $file1` result5=$? if test "$output5" != "de:/tmp/.ext \"/tmp/a b/.ext\":"; then echo "Subtest 5: Wrong result: $output5" result5=1 else echo "Subtest 5: OK" fi # Test 6 cat > $file1 <<EOT SHELL*:=/bin/sh SHELLFLAGS*:=-ce MACROd:=/tmp/yyy "/tmp/a b/xxx" all : @echo e:\$(MACROd:e): EOT output6=`eval ${DMAKEPROG} -r -f $file1` result6=$? if test "$output6" != "e::"; then echo "Subtest 6: Wrong result: $output6" result6=1 else echo "Subtest 6: OK" fi if test $result1 -eq 0 -a $result2 -eq 0 \ -a $result3 -eq 0 -a $result4 -eq 0 \ -a $result5 -eq 0 -a $result6 -eq 0 ; then echo "Success - Cleaning up" && rm -f ${tmpfiles} exit else echo "Failure!" exit 1 fi