38 #endif
39
40 #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */
41 # include <avo/strings.h> /* AVO_STRDUP() */
42 # include <dm/Avo_MToolJobResultMsg.h>
43 # include <dm/Avo_MToolJobStartMsg.h>
44 # include <dm/Avo_MToolRsrcInfoMsg.h>
45 # include <dm/Avo_macro_defs.h> /* AVO_BLOCK_INTERUPTS & AVO_UNBLOCK_INTERUPTS */
46 # include <dmthread/Avo_ServerState.h>
47 # include <rw/pstream.h>
48 # include <rw/xdrstrea.h>
49 #endif
50
51 #include <fcntl.h>
52 #include <mk/defs.h>
53 #include <mksh/i18n.h> /* get_char_semantics_value() */
54 #include <mksh/macro.h> /* getvar(), expand_value() */
55 #include <mksh/misc.h> /* getmem() */
56 #include <poll.h>
57
58 #ifdef PARALLEL
59 # include <rx/api.h>
60 #endif
61
62 #include <signal.h>
63
64 # include <stropts.h>
65
66 #include <sys/errno.h>
67 #include <sys/stat.h>
68 #include <sys/types.h>
69 #include <sys/utsname.h> /* uname() */
70 #include <sys/wait.h>
71 #include <unistd.h> /* close() */
72
73 /*
74 * Defined macros
75 */
76 #ifndef PARALLEL
77 # define LOCALHOST "localhost"
78 #endif
79
80 #define MAXRULES 100
81
82 #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */
83 #define SEND_MTOOL_MSG(cmds) \
84 if (send_mtool_msgs) { \
85 cmds \
86 }
87 #else
88 #define SEND_MTOOL_MSG(cmds)
89 #endif
90
91 // Sleep for .1 seconds between stat()'s
92 const int STAT_RETRY_SLEEP_TIME = 100000;
93
94 /*
95 * typedefs & structs
96 */
97
98 /*
530 line,
531 do_get,
532 target,
533 true_target,
534 doing_subtree,
535 &out_of_date_list,
536 old_locals,
537 implicit,
538 &command,
539 less,
540 rechecking_target,
541 recheck_conditionals)) {
542 return build_running;
543 }
544 if (line->body.line.query != NULL) {
545 delete_query_chain(line->body.line.query);
546 }
547 line->body.line.query = out_of_date_list;
548 }
549
550 #ifdef PARALLEL
551 if (doing_subtree) {
552 parallel = false;
553 }
554 #endif
555
556 /*
557 * If the target is a :: type, do not try to find the rule for the target,
558 * all actions will be taken by separate branches.
559 * Else, we try to find an implicit rule using various methods,
560 * we quit as soon as one is found.
561 *
562 * [tolik, 12 Sep 2002] Do not try to find implicit rule for the target
563 * being rechecked - the target is being rechecked means that it already
564 * has explicit dependencies derived from an implicit rule found
565 * in previous step.
566 */
567 if (target->colon_splits == 0 && !rechecking_target) {
568 /* Look for percent matched rule */
569 if ((result == build_dont_know) &&
570 (command == NULL)) {
571 switch (find_percent_rule(
572 target,
573 &command,
574 recheck_conditionals)) {
|
38 #endif
39
40 #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */
41 # include <avo/strings.h> /* AVO_STRDUP() */
42 # include <dm/Avo_MToolJobResultMsg.h>
43 # include <dm/Avo_MToolJobStartMsg.h>
44 # include <dm/Avo_MToolRsrcInfoMsg.h>
45 # include <dm/Avo_macro_defs.h> /* AVO_BLOCK_INTERUPTS & AVO_UNBLOCK_INTERUPTS */
46 # include <dmthread/Avo_ServerState.h>
47 # include <rw/pstream.h>
48 # include <rw/xdrstrea.h>
49 #endif
50
51 #include <fcntl.h>
52 #include <mk/defs.h>
53 #include <mksh/i18n.h> /* get_char_semantics_value() */
54 #include <mksh/macro.h> /* getvar(), expand_value() */
55 #include <mksh/misc.h> /* getmem() */
56 #include <poll.h>
57
58
59 #include <signal.h>
60
61 # include <stropts.h>
62
63 #include <sys/errno.h>
64 #include <sys/stat.h>
65 #include <sys/types.h>
66 #include <sys/utsname.h> /* uname() */
67 #include <sys/wait.h>
68 #include <unistd.h> /* close() */
69
70 /*
71 * Defined macros
72 */
73 # define LOCALHOST "localhost"
74
75 #define MAXRULES 100
76
77 #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */
78 #define SEND_MTOOL_MSG(cmds) \
79 if (send_mtool_msgs) { \
80 cmds \
81 }
82 #else
83 #define SEND_MTOOL_MSG(cmds)
84 #endif
85
86 // Sleep for .1 seconds between stat()'s
87 const int STAT_RETRY_SLEEP_TIME = 100000;
88
89 /*
90 * typedefs & structs
91 */
92
93 /*
525 line,
526 do_get,
527 target,
528 true_target,
529 doing_subtree,
530 &out_of_date_list,
531 old_locals,
532 implicit,
533 &command,
534 less,
535 rechecking_target,
536 recheck_conditionals)) {
537 return build_running;
538 }
539 if (line->body.line.query != NULL) {
540 delete_query_chain(line->body.line.query);
541 }
542 line->body.line.query = out_of_date_list;
543 }
544
545
546 /*
547 * If the target is a :: type, do not try to find the rule for the target,
548 * all actions will be taken by separate branches.
549 * Else, we try to find an implicit rule using various methods,
550 * we quit as soon as one is found.
551 *
552 * [tolik, 12 Sep 2002] Do not try to find implicit rule for the target
553 * being rechecked - the target is being rechecked means that it already
554 * has explicit dependencies derived from an implicit rule found
555 * in previous step.
556 */
557 if (target->colon_splits == 0 && !rechecking_target) {
558 /* Look for percent matched rule */
559 if ((result == build_dont_know) &&
560 (command == NULL)) {
561 switch (find_percent_rule(
562 target,
563 &command,
564 recheck_conditionals)) {
|