Index: dmake/make.c =================================================================== RCS file: /cvs/tools/dmake/make.c,v retrieving revision 1.6.8.1 diff -u -r1.6.8.1 make.c --- dmake/make.c 20 Jul 2006 02:41:13 -0000 1.6.8.1 +++ dmake/make.c 20 Jul 2006 02:47:21 -0000 @@ -1141,6 +1141,9 @@ if( *DmStrSpn(cmnd, " \t") != '\0' ) Print_cmnd(cmnd, !(do_it && (l_attr & A_SILENT)), 0); else + /* FIXME: Setting to FALSE might be wrong if this is the last recipe + * line but previous recipe line is still building. See comment in + * Do_cmnd(). */ do_it = FALSE; rval=Do_cmnd(cmnd,FALSE,do_it,cp,(l_attr&A_IGNORE)!=0, shell, Index: dmake/sysintf.c =================================================================== RCS file: /cvs/tools/dmake/sysintf.c,v retrieving revision 1.7.8.1 diff -u -r1.7.8.1 sysintf.c --- dmake/sysintf.c 20 Jul 2006 02:41:13 -0000 1.7.8.1 +++ dmake/sysintf.c 20 Jul 2006 02:47:22 -0000 @@ -259,6 +259,10 @@ if( !do_it ) { if( last && !Doing_bang ) { + /* FIXME: This is wrong if the previous recipe line is still building + * but the last recipe line happened to be an empty line. A better + * solution would be to teach runargv() not to fork/spawn when *cmd + * is empty. */ Update_time_stamp( target ); } return(0);