=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/make/error.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- src/usr.bin/make/error.c 2007/09/17 09:28:36 1.13 +++ src/usr.bin/make/error.c 2007/11/02 17:27:24 1.14 @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: error.c,v 1.13 2007/09/17 09:28:36 espie Exp $ */ +/* $OpenBSD: error.c,v 1.14 2007/11/02 17:27:24 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. @@ -29,12 +29,15 @@ #include #include #include +#include +#include #include "config.h" #include "defines.h" #include "error.h" #include "job.h" #include "targ.h" +#include "var.h" #include "lowparse.h" @@ -132,7 +135,16 @@ void Finish(int errors) /* number of errors encountered in Make_Make */ { - Fatal("%d error%s", errors, errors == 1 ? "" : "s"); + Job_Wait(); + if (errors != 0) { + Error("make pid #%ld: %d error%s in directory %s:", (long)getpid(), + errors, errors == 1 ? "" : "s", + Var_Value(".CURDIR")); + } + print_errors(); + if (DEBUG(GRAPH2)) + Targ_PrintGraph(2); + exit(2); /* Not 1 so -q can distinguish error */ }