[BACK]Return to compat.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / make

Diff for /src/usr.bin/make/compat.c between version 1.53 and 1.54

version 1.53, 2007/07/30 09:51:53 version 1.54, 2007/09/16 09:46:14
Line 444 
Line 444 
              * that for .ZEROTIME targets, the timestamping isn't done.               * that for .ZEROTIME targets, the timestamping isn't done.
              * This is to keep its state from affecting that of its parent.  */               * This is to keep its state from affecting that of its parent.  */
             gn->made = MADE;              gn->made = MADE;
 #ifndef RECHECK  
             /* We can't re-stat the thing, but we can at least take care of  
              * rules where a target depends on a source that actually creates  
              * the target, but only if it has changed, e.g.  
              *  
              * parse.h : parse.o  
              *  
              * parse.o : parse.y  
              *          yacc -d parse.y  
              *          cc -c y.tab.c  
              *          mv y.tab.o parse.o  
              *          cmp -s y.tab.h parse.h || mv y.tab.h parse.h  
              *  
              * In this case, if the definitions produced by yacc haven't  
              * changed from before, parse.h won't have been updated and  
              * gn->mtime will reflect the current modification time for  
              * parse.h. This is something of a kludge, I admit, but it's a  
              * useful one..  
              *  
              * XXX: People like to use a rule like  
              *  
              * FRC:  
              *  
              * To force things that depend on FRC to be made, so we have to  
              * check for gn->children being empty as well...  */  
             if (!Lst_IsEmpty(&gn->commands) || Lst_IsEmpty(&gn->children))  
                 gn->mtime = now;  
 #else  
             /* This is what Make does and it's actually a good thing, as it              /* This is what Make does and it's actually a good thing, as it
              * allows rules like               * allows rules like
              *               *
Line 495 
Line 467 
                 gn->mtime = gn->cmtime;                  gn->mtime = gn->cmtime;
             if (DEBUG(MAKE))              if (DEBUG(MAKE))
                 printf("update time: %s\n", Targ_FmtTime(gn->mtime));                  printf("update time: %s\n", Targ_FmtTime(gn->mtime));
 #endif  
             if (!(gn->type & OP_EXEC)) {              if (!(gn->type & OP_EXEC)) {
                 pgn->childMade = true;                  pgn->childMade = true;
                 Make_TimeStamp(pgn, gn);                  Make_TimeStamp(pgn, gn);

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54