summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2007-11-03 14:05:40 +0000
committerMarc Espie <espie@cvs.openbsd.org>2007-11-03 14:05:40 +0000
commit0a92a05758622cc6774cc6d9742220aee6e4cf9a (patch)
treeeb2310776562438f9eacd61e7c6b38aeeb47e3a8 /usr.bin
parent22761722370bb2389ff416be9d80c151c16db919 (diff)
simplify: Job_CheckCommands deals with silent and ignerr now, so there's
no need to duplicate that info at the job level since we can just use the gn->type.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/make/compat.c4
-rw-r--r--usr.bin/make/engine.c6
-rw-r--r--usr.bin/make/engine.h6
-rw-r--r--usr.bin/make/job.c26
4 files changed, 15 insertions, 27 deletions
diff --git a/usr.bin/make/compat.c b/usr.bin/make/compat.c
index 12c8c3bd5a3..8da3df0c660 100644
--- a/usr.bin/make/compat.c
+++ b/usr.bin/make/compat.c
@@ -1,5 +1,5 @@
/* $OpenPackages$ */
-/* $OpenBSD: compat.c,v 1.64 2007/11/03 11:42:41 espie Exp $ */
+/* $OpenBSD: compat.c,v 1.65 2007/11/03 14:05:39 espie Exp $ */
/* $NetBSD: compat.c,v 1.14 1996/11/06 17:59:01 christos Exp $ */
/*
@@ -134,7 +134,7 @@ CompatMake(void *gnp, /* The node to make */
if (!touchFlag)
run_gnode(gn, 0);
else
- Job_Touch(gn, gn->type & OP_SILENT);
+ Job_Touch(gn);
} else
gn->made = ERROR;
diff --git a/usr.bin/make/engine.c b/usr.bin/make/engine.c
index bdb18083521..9bc499edf1e 100644
--- a/usr.bin/make/engine.c
+++ b/usr.bin/make/engine.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: engine.c,v 1.11 2007/11/03 11:42:41 espie Exp $ */
+/* $OpenBSD: engine.c,v 1.12 2007/11/03 14:05:39 espie Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
* Copyright (c) 1988, 1989 by Adam de Boor
@@ -158,7 +158,7 @@ rewrite_time(const char *name)
}
void
-Job_Touch(GNode *gn, bool silent)
+Job_Touch(GNode *gn)
{
if (gn->type & (OP_JOIN|OP_USE|OP_EXEC|OP_OPTIONAL)) {
/*
@@ -168,7 +168,7 @@ Job_Touch(GNode *gn, bool silent)
return;
}
- if (!silent) {
+ if (!(gn->type & OP_SILENT)) {
(void)fprintf(stdout, "touch %s\n", gn->name);
(void)fflush(stdout);
}
diff --git a/usr.bin/make/engine.h b/usr.bin/make/engine.h
index 68fc47aa7a2..ce05ec844d1 100644
--- a/usr.bin/make/engine.h
+++ b/usr.bin/make/engine.h
@@ -1,6 +1,6 @@
#ifndef ENGINE_H
#define ENGINE_H
-/* $OpenBSD: engine.h,v 1.3 2007/11/02 17:27:24 espie Exp $ */
+/* $OpenBSD: engine.h,v 1.4 2007/11/03 14:05:39 espie Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -43,11 +43,11 @@
* .DEFAULT and other places if necessary.
*/
extern bool Job_CheckCommands(GNode *, void (*abortProc)(char *, ...));
-/* Job_Touch(node, besilent);
+/* Job_Touch(node);
* touch the path corresponding to a node or update the corresponding
* archive object.
*/
-extern void Job_Touch(GNode *, bool);
+extern void Job_Touch(GNode *);
/* Make_TimeStamp(parent, child);
* ensure parent is at least as recent as child.
*/
diff --git a/usr.bin/make/job.c b/usr.bin/make/job.c
index a7384441a0d..3ea510a4936 100644
--- a/usr.bin/make/job.c
+++ b/usr.bin/make/job.c
@@ -1,5 +1,5 @@
/* $OpenPackages$ */
-/* $OpenBSD: job.c,v 1.105 2007/11/03 11:44:30 espie Exp $ */
+/* $OpenBSD: job.c,v 1.106 2007/11/03 14:05:39 espie Exp $ */
/* $NetBSD: job.c,v 1.16 1996/11/06 17:59:08 christos Exp $ */
/*
@@ -152,8 +152,6 @@ typedef struct Job_ {
pid_t pid; /* The child's process ID */
GNode *node; /* The target the child is making */
short flags; /* Flags to control treatment of job */
-#define JOB_IGNERR 0x001 /* Ignore non-zero exits */
-#define JOB_SILENT 0x002 /* no output */
#define JOB_SPECIAL 0x004 /* Target is a special one. */
#define JOB_RESTART 0x080 /* Job needs to be completely restarted */
#define JOB_RESUME 0x100 /* Job needs to be resumed b/c it stopped,
@@ -490,11 +488,7 @@ JobClose(Job *job)
*-----------------------------------------------------------------------
* JobFinish --
* Do final processing for the given job including updating
- * parents and starting new jobs as available/necessary. Note
- * that we pay no attention to the JOB_IGNERR flag here.
- * This is because when we're called because of a noexecute flag
- * or something, jstat.w_status is 0 and when called from
- * Job_CatchChildren, the status is zeroed if it s/b ignored.
+ * parents and starting new jobs as available/necessary.
*
* Side Effects:
* Some nodes may be put on the toBeMade queue.
@@ -513,7 +507,7 @@ JobFinish(Job *job, int status)
bool done;
if ((WIFEXITED(status) &&
- WEXITSTATUS(status) != 0 && !(job->flags & JOB_IGNERR)) ||
+ WEXITSTATUS(status) != 0 && !(job->node->type & OP_IGNORE)) ||
(WIFSIGNALED(status) && WTERMSIG(status) != SIGCONT)) {
/*
* If it exited non-zero and either we're doing things our
@@ -557,10 +551,10 @@ JobFinish(Job *job, int status)
banner(job, stdout);
(void)fprintf(stdout, "*** Error code %d%s\n",
WEXITSTATUS(status),
- (job->flags & JOB_IGNERR) ? "(ignored)" :
- "");
+ (job->node->type & OP_IGNORE) ?
+ "(ignored)" : "");
- if (job->flags & JOB_IGNERR) {
+ if (job->node->type & OP_IGNORE) {
status = 0;
}
} else if (DEBUG(JOB)) {
@@ -907,12 +901,6 @@ prepare_job(GNode *gn, int flags)
* are also added to the field.
*/
job->flags = flags;
- if (Targ_Ignore(gn)) {
- job->flags |= JOB_IGNERR;
- }
- if (Targ_Silent(gn)) {
- job->flags |= JOB_SILENT;
- }
/*
* Check the commands now so any attributes from .DEFAULT have a chance
@@ -946,7 +934,7 @@ prepare_job(GNode *gn, int flags)
* the commands, too, but don't die if they're no good -- it
* does no harm to keep working up the graph.
*/
- Job_Touch(gn, job->flags & JOB_SILENT);
+ Job_Touch(gn);
noExec = true;
}