#!/bin/sh # 01.03.2006 Volker Quetschke # If a dependency is added to a target after it is already build as an # indered .INCLUDE makefile the new dependency can be lost in parallel # builds. # (issue 61969) : ${DMAKEPROG:=dmake} file1="mfile1.mk" file2="mytarget.dpcc" 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( $ -> \$ ). cat > $file1 < \$@ # This has to be build if mytarget.dpcc is included and is requested # as a target # Adding the wait makes sure that the unpatched dmake is ended before the # next recipe line is started, therefore loosing it. %.obj : @sleep 1 @echo making: \$@ .INCLUDE : mytarget.dpcc # Make this the main target mytarget.dpcc : EOT output=`eval ${DMAKEPROG} -r -P2 -f $file1` result=$? if test "$output" != "making: mytarget.obj"; then result=1 fi test $result -eq 0 && echo "Success - Cleaning up" && rm -f ${tmpfiles} test $result -ne 0 && echo "Failure! Recipe line got lost." exit $result