summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>1999-11-22 06:15:35 +0000
committerPaul Smith <psmith@gnu.org>1999-11-22 06:15:35 +0000
commit217ca5d91098c0b6b704fe3d9806378dd5dcc698 (patch)
tree129b499338c05e6d58bd69e4bf31f42ef2ac9c4d
parentebb733c0f9ab045b6fd6245df2baf2e87463e1bc (diff)
downloadgunmake-217ca5d91098c0b6b704fe3d9806378dd5dcc698.tar.gz
* Add new debugging output level selection feature.
-rw-r--r--ChangeLog11
-rw-r--r--NEWS8
-rw-r--r--function.c5
-rw-r--r--implicit.c39
-rw-r--r--job.c64
-rw-r--r--main.c62
-rw-r--r--make.h8
-rw-r--r--misc.c6
-rw-r--r--read.c6
-rw-r--r--remake.c99
-rw-r--r--remote-cstms.c8
-rw-r--r--vmsfunctions.c10
12 files changed, 183 insertions, 143 deletions
diff --git a/ChangeLog b/ChangeLog
index 956009b..b79d6f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+1999-11-21 Paul D. Smith <psmith@gnu.org>
+
+ Rework GNU make debugging to provide different levels of output.
+
+ * NEWS: mention it.
+ * debug.h: New file. Define various debugging levels and macros.
+ * function.c, implicit.c, job.c, main.c, misc.c, read.c, remake.c
+ * remote-cstms.c, vmsfunctions.c: Replace all code depending on
+ debug_flag with invocations of debugging macros.
+ * make.h: Remove debug_flag and DEBUGPR, add db_level.
+
1999-11-17 Paul D. Smith <psmith@gnu.org>
* function.c (func_if): Find the end of the arg list by testing
diff --git a/NEWS b/NEWS
index b0dfe48..ec49770 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*-
History of user-visible changes.
- 10 Nov 1999
+ 21 Nov 1999
Copyright (C) 1992,93,94,95,96,97,98,1999 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -31,6 +31,12 @@ Version 3.79
* A new psuedo-target, .NOTPARALLEL, is defined. If set the current
makefile is always run serially regardless of the value of -j. Any
submakes will still be run in parallel if -j was specified.
+
+* The -d (--debug) option has changed: it now takes an optional numeric
+ argument. By default only a minimal set of debugging output is
+ generated, displaying information about what "normal" files (not
+ makefiles) were deemed out of date and in need of being rebuilt.
+ Various values control the amount of detail in the debugging output.
Version 3.78
diff --git a/function.c b/function.c
index 237214e..5ce56b5 100644
--- a/function.c
+++ b/function.c
@@ -23,6 +23,7 @@ Boston, MA 02111-1307, USA. */
#include "dep.h"
#include "job.h"
#include "commands.h"
+#include "debug.h"
#ifdef _AMIGA
#include "amiga.h"
@@ -1454,8 +1455,8 @@ func_shell (o, argv, funcname)
reap_children (1, 0);
if (batch_filename) {
- if (debug_flag)
- printf(_("Cleaning up temporary batch file %s\n"), batch_filename);
+ DB (DB_EXTRA, (_("Cleaning up temporary batch file %s\n"),
+ batch_filename));
remove(batch_filename);
free(batch_filename);
}
diff --git a/implicit.c b/implicit.c
index c60cbe3..88bce9e 100644
--- a/implicit.c
+++ b/implicit.c
@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
#include "rule.h"
#include "dep.h"
#include "filedef.h"
+#include "debug.h"
static int pattern_search PARAMS ((struct file *file, int archive, unsigned int depth,
unsigned int recursions));
@@ -36,7 +37,7 @@ try_implicit_rule (file, depth)
struct file *file;
unsigned int depth;
{
- DEBUGPR (_("Looking for an implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Looking for an implicit rule for `%s'.\n"));
/* The order of these searches was previously reversed. My logic now is
that since the non-archive search uses more information in the target
@@ -51,7 +52,8 @@ try_implicit_rule (file, depth)
archive member name to search for implicit rules. */
if (ar_name (file->name))
{
- DEBUGPR (_("Looking for archive-member implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT,
+ _("Looking for archive-member implicit rule for `%s'.\n"));
if (pattern_search (file, 1, depth, 0))
return 1;
}
@@ -60,11 +62,6 @@ try_implicit_rule (file, depth)
return 0;
}
-#define DEBUGP2(msg, a1, a2) \
- do { \
- if (debug_flag) \
- { print_spaces (depth); printf (msg, a1, a2); fflush (stdout); } \
- } while (0)
/* Search the pattern rules for a rule with an existing dependency to make
FILE. If a rule is found, the appropriate commands and deps are put in FILE
@@ -199,7 +196,7 @@ pattern_search (file, archive, depth, recursions)
don't use it here. */
if (rule->in_use)
{
- DEBUGP2 (_("Avoiding implicit rule recursion.%s%s\n"), "", "");
+ DBS (DB_IMPLICIT, (_("Avoiding implicit rule recursion.\n")));
continue;
}
@@ -335,8 +332,8 @@ pattern_search (file, archive, depth, recursions)
stemlen -= (lastslash - filename) + 1;
}
- DEBUGP2 (_("Trying pattern rule with stem `%.*s'.\n"),
- (int) stemlen, stem);
+ DBS (DB_IMPLICIT, (_("Trying pattern rule with stem `%.*s'.\n"),
+ (int) stemlen, stem));
/* Try each dependency; see if it "exists". */
@@ -376,16 +373,21 @@ pattern_search (file, archive, depth, recursions)
"impossible", then the rule fails and don't
bother trying it on the second pass either
since we know that will fail too. */
- DEBUGP2 (_("Rejecting impossible %s prerequisite `%s'.\n"),
- p == depname ? _("implicit") : _("rule"), p);
+ DBS (DB_IMPLICIT,
+ (p == depname
+ ? _("Rejecting impossible implicit prerequisite `%s'.\n")
+ : _("Rejecting impossible rule prerequisite `%s'.\n"),
+ p));
tryrules[i] = 0;
break;
}
intermediate_files[deps_found] = 0;
- DEBUGP2 (_("Trying %s prerequisite `%s'.\n"),
- p == depname ? _("implicit") : _("rule"), p);
+ DBS (DB_IMPLICIT,
+ (p == depname
+ ? _("Trying implicit prerequisite `%s'.\n")
+ : _("Trying rule prerequisite `%s'.\n"), p));
/* The DEP->changed flag says that this dependency resides in a
nonexistent directory. So we normally can skip looking for
@@ -408,8 +410,8 @@ pattern_search (file, archive, depth, recursions)
vp = p;
if (vpath_search (&vp, (FILE_TIMESTAMP *) 0))
{
- DEBUGP2 (_("Found prerequisite `%s' as VPATH `%s'\n"),
- p, vp);
+ DBS (DB_IMPLICIT,
+ (_("Found prerequisite `%s' as VPATH `%s'\n"), p, vp));
strcpy (vp, p);
found_files[deps_found++] = vp;
continue;
@@ -425,8 +427,9 @@ pattern_search (file, archive, depth, recursions)
intermediate_file
= (struct file *) alloca (sizeof (struct file));
- DEBUGP2 (_("Looking for a rule with %s file `%s'.\n"),
- _("intermediate"), p);
+ DBS (DB_IMPLICIT,
+ (_("Looking for a rule with intermediate file `%s'.\n"),
+ p));
bzero ((char *) intermediate_file, sizeof (struct file));
intermediate_file->name = p;
diff --git a/job.c b/job.c
index ba79b30..e79b6a7 100644
--- a/job.c
+++ b/job.c
@@ -17,12 +17,17 @@ along with GNU Make; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include <assert.h>
+
#include "make.h"
#include "job.h"
+#include "debug.h"
#include "filedef.h"
#include "commands.h"
#include "variable.h"
-#include <assert.h>
+#include "debug.h"
+
+#include <string.h>
/* Default shell to use. */
#ifdef WINDOWS32
@@ -210,8 +215,6 @@ static struct child *waiting_jobs = 0;
int unixy_shell = 1;
-/* #define debug_flag 1 */
-
#ifdef WINDOWS32
/*
@@ -296,8 +299,7 @@ child_handler (sig)
job_rfd = -1;
}
- if (debug_flag)
- printf (_("Got a SIGCHLD; %u unreaped children.\n"), dead_children);
+ DB (DB_JOBS, (_("Got a SIGCHLD; %u unreaped children.\n"), dead_children));
}
@@ -375,10 +377,9 @@ reap_children (block, err)
{
any_remote |= c->remote;
any_local |= ! c->remote;
- if (debug_flag)
- printf (_("Live child 0x%08lx (%s) PID %ld %s\n"),
- (unsigned long int) c, c->file->name,
- (long) c->pid, c->remote ? _(" (remote)") : "");
+ DB (DB_JOBS, (_("Live child 0x%08lx (%s) PID %ld %s\n"),
+ (unsigned long int) c, c->file->name,
+ (long) c->pid, c->remote ? _(" (remote)") : ""));
#ifdef VMS
break;
#endif
@@ -534,15 +535,15 @@ reap_children (block, err)
Ignore it; it was inherited from our invoker. */
continue;
- if (debug_flag)
- printf (_("Reaping %s child 0x%08lx PID %ld %s\n"),
- child_failed ? _("losing") : _("winning"),
- (unsigned long int) c, (long) c->pid,
- c->remote ? _(" (remote)") : "");
+ DB (DB_JOBS, (child_failed
+ ? _("Reaping losing child 0x%08lx PID %ld %s\n")
+ : _("Reaping winning child 0x%08lx PID %ld %s\n"),
+ (unsigned long int) c, (long) c->pid,
+ c->remote ? _(" (remote)") : ""));
if (c->sh_batch_file) {
- if (debug_flag)
- printf (_("Cleaning up temp batch file %s\n"), c->sh_batch_file);
+ DB (DB_JOBS, (_("Cleaning up temp batch file %s\n"),
+ c->sh_batch_file));
/* just try and remove, don't care if this fails */
remove (c->sh_batch_file);
@@ -634,10 +635,9 @@ reap_children (block, err)
update_status to its also_make files. */
notice_finished_file (c->file);
- if (debug_flag)
- printf (_("Removing child 0x%08lx PID %ld %s from chain.\n"),
- (unsigned long int) c, (long) c->pid,
- c->remote ? _(" (remote)") : "");
+ DB (DB_JOBS, (_("Removing child 0x%08lx PID %ld %s from chain.\n"),
+ (unsigned long int) c, (long) c->pid,
+ c->remote ? _(" (remote)") : ""));
/* Block fatal signals while frobnicating the list, so that
children and job_slots_used are always consistent. Otherwise
@@ -694,9 +694,8 @@ free_child (child)
if (!EINTR_SET)
pfatal_with_name (_("write jobserver"));
- if (debug_flag)
- printf (_("Released token for child 0x%08lx (%s).\n"),
- (unsigned long int) child, child->file->name);
+ DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"),
+ (unsigned long int) child, child->file->name));
}
if (handling_fatal_signal) /* Don't bother free'ing if about to die. */
@@ -1189,10 +1188,9 @@ start_waiting_job (c)
{
case cs_running:
c->next = children;
- if (debug_flag)
- printf (_("Putting child 0x%08lx (%s) PID %ld%s on the chain.\n"),
- (unsigned long int) c, c->file->name,
- (long) c->pid, c->remote ? _(" (remote)") : "");
+ DB (DB_JOBS, (_("Putting child 0x%08lx (%s) PID %ld%s on the chain.\n"),
+ (unsigned long int) c, c->file->name,
+ (long) c->pid, c->remote ? _(" (remote)") : ""));
children = c;
/* One more job slot is in use. */
++job_slots_used;
@@ -1389,9 +1387,8 @@ new_job (file)
if (read (job_rfd, &token, 1) == 1)
{
- if (debug_flag)
- printf (_("Obtained token for child 0x%08lx (%s).\n"),
- (unsigned long int) c, c->file->name);
+ DB (DB_JOBS, (_("Obtained token for child 0x%08lx (%s).\n"),
+ (unsigned long int) c, c->file->name));
break;
}
@@ -1675,8 +1672,7 @@ child_execute_job (argv, child)
sprintf (cmd, "$ @%s", comname);
- if (debug_flag)
- printf (_("Executing %s instead\n"), cmd);
+ DB (DB_JOBS, (_("Executing %s instead\n"), cmd));
}
cmddsc.dsc$w_length = strlen(cmd);
@@ -2436,8 +2432,8 @@ construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr)
strcat(*batch_filename_ptr, ".sh");
}
- if (debug_flag)
- printf(_("Creating temporary batch file %s\n"), *batch_filename_ptr);
+ DB (DB_JOBS, (_("Creating temporary batch file %s\n"),
+ *batch_filename_ptr));
/* create batch file to execute command */
batch = fopen (*batch_filename_ptr, "w");
diff --git a/main.c b/main.c
index a1b3d74..96bab63 100644
--- a/main.c
+++ b/main.c
@@ -24,7 +24,9 @@ MA 02111-1307, USA. */
#include "job.h"
#include "commands.h"
#include "rule.h"
+#include "debug.h"
#include "getopt.h"
+
#include <assert.h>
#ifdef _AMIGA
# include <dos/dos.h>
@@ -137,9 +139,11 @@ int touch_flag;
int just_print_flag;
-/* Print debugging trace info (-d). */
+/* Print debugging info (--debug). */
-int debug_flag = 0;
+int db_level = 0;
+int noarg_db_level = 1;
+int default_db_level = 0;
#ifdef WINDOWS32
/* Suspend make in main for a short time to allow debugger to attach */
@@ -256,9 +260,10 @@ static const struct command_switch switches[] =
{ 'C', string, (char *) &directories, 0, 0, 0, 0, 0,
"directory", _("DIRECTORY"),
_("Change to DIRECTORY before doing anything") },
- { 'd', flag, (char *) &debug_flag, 1, 1, 0, 0, 0,
- "debug", 0,
- _("Print lots of debugging information") },
+ { 'd', positive_int, (char *) &db_level, 1, 1, 0,
+ (char *) &noarg_db_level, (char *) &default_db_level,
+ "debug", "L",
+ _("Print different types of debugging information") },
#ifdef WINDOWS32
{ 'D', flag, (char *) &suspend_flag, 1, 1, 0, 0, 0,
"suspend-for-debug", 0,
@@ -484,7 +489,7 @@ static RETSIGTYPE
debug_signal_handler (sig)
int sig;
{
- debug_flag = ! debug_flag;
+ db_level = DB_NONE;
}
#ifdef WINDOWS32
@@ -492,8 +497,8 @@ debug_signal_handler (sig)
* HANDLE runtime exceptions by avoiding a requestor on the GUI. Capture
* exception and print it to stderr instead.
*
- * If debug_flag not set, just print a simple message and exit.
- * If debug_flag set, print a more verbose message.
+ * If ! DB_EXTRA, just print a simple message and exit.
+ * If DB_EXTRA, print a more verbose message.
* If compiled for DEBUG, let exception pass through to GUI so that
* debuggers can attach.
*/
@@ -509,7 +514,7 @@ handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo )
LPTSTR lpszStrings[1];
#endif
- if (!debug_flag)
+ if (! ISDB (DB_EXTRA))
{
sprintf(errmsg, _("%s: Interrupt/Exception caught "), prg);
sprintf(&errmsg[strlen(errmsg)],
@@ -596,8 +601,8 @@ find_and_set_default_shell(char *token)
/* search token path was found */
sprintf(sh_path, "%s", search_token);
default_shell = xstrdup(w32ify(sh_path,0));
- if (debug_flag)
- printf(_("find_and_set_shell setting default_shell = %s\n"), default_shell);
+ DB (DB_EXTRA,
+ (_("find_and_set_shell setting default_shell = %s\n"), default_shell));
sh_found = 1;
} else {
char *p;
@@ -638,8 +643,10 @@ find_and_set_default_shell(char *token)
sh_found = 1;
}
- if (debug_flag && sh_found)
- printf(_("find_and_set_shell path search set default_shell = %s\n"), default_shell);
+ if (sh_found)
+ DB (DB_EXTRA,
+ (_("find_and_set_shell path search set default_shell = %s\n"),
+ default_shell));
}
}
@@ -942,9 +949,14 @@ int main (int argc, char ** argv)
}
#endif
+ /* If we have the "extra" level, force the basic level too. */
+
+ if (ISDB (DB_EXTRA))
+ db_level |= DB_BASIC;
+
/* Print version information. */
- if (print_version_flag || print_data_base_flag || debug_flag)
+ if (print_version_flag || print_data_base_flag || db_level)
print_version ();
/* `make --version' is supposed to just print the version and exit. */
@@ -1473,9 +1485,12 @@ int main (int argc, char ** argv)
unsigned int mm_idx = 0;
char **nargv = argv;
int nargc = argc;
+ int orig_db_level = db_level;
- if (debug_flag)
- puts (_("Updating makefiles...."));
+ if (! ISDB (DB_MAKEFILES))
+ db_level = DB_NONE;
+
+ DB (DB_BASIC, (_("Updating makefiles....\n")));
/* Remove any makefiles we don't want to try to update.
Also record the current modtimes so we can compare them later. */
@@ -1499,9 +1514,9 @@ int main (int argc, char ** argv)
stupidly; but if you work for Athena, that's how
you write your makefiles.) */
- if (debug_flag)
- printf (_("Makefile `%s' might loop; not remaking it.\n"),
- f->name);
+ DB (DB_EXTRA,
+ (_("Makefile `%s' might loop; not remaking it.\n"),
+ f->name));
if (last == 0)
read_makefiles = d->next;
@@ -1694,13 +1709,13 @@ int main (int argc, char ** argv)
}
#endif
- if (debug_flag)
+ if (ISDB (DB_BASIC))
{
char **p;
fputs (_("Re-executing:"), stdout);
for (p = nargv; *p != 0; ++p)
printf (" %s", *p);
- puts ("");
+ putchar ('\n');
}
fflush (stdout);
@@ -1718,6 +1733,8 @@ int main (int argc, char ** argv)
#endif
/* NOTREACHED */
}
+
+ db_level = orig_db_level;
}
/* Set up `MAKEFLAGS' again for the normal targets. */
@@ -1755,8 +1772,7 @@ int main (int argc, char ** argv)
/* Update the goals. */
- if (debug_flag)
- puts (_("Updating goal targets...."));
+ DB (DB_BASIC, (_("Updating goal targets....\n")));
switch (update_goal_chain (goals, 0))
{
diff --git a/make.h b/make.h
index 7ecfcd2..8f1b057 100644
--- a/make.h
+++ b/make.h
@@ -175,11 +175,9 @@ extern unsigned int get_path_max PARAMS ((void));
#endif
#ifdef VMS
-# include <stdio.h>
# include <types.h>
# include <unixlib.h>
# include <unixio.h>
-# include <errno.h>
# include <perror.h>
#endif
@@ -465,7 +463,7 @@ extern const struct floc *reading_file;
extern char **environ;
extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag;
-extern int debug_flag, print_data_base_flag, question_flag, touch_flag;
+extern int print_data_base_flag, question_flag, touch_flag;
extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag;
extern int print_version_flag, print_directory_flag;
extern int warn_undefined_variables_flag, posix_pedantic, not_parallel;
@@ -500,10 +498,6 @@ extern int handling_fatal_signal;
#define MAX(_a,_b) ((_a)>(_b)?(_a):(_b))
#endif
-#define DEBUGPR(msg) \
- do if (debug_flag) { print_spaces (depth); printf (msg, file->name); \
- fflush (stdout); } while (0)
-
#ifdef VMS
# ifndef EXIT_FAILURE
# define EXIT_FAILURE 3
diff --git a/misc.c b/misc.c
index 2447bc5..6310f28 100644
--- a/misc.c
+++ b/misc.c
@@ -19,7 +19,7 @@ Boston, MA 02111-1307, USA. */
#include "make.h"
#include "dep.h"
-
+#include "debug.h"
/* Variadic functions. We go through contortions to allow proper function
prototypes for both ANSI and pre-ANSI C compilers, and also for those
@@ -168,7 +168,7 @@ remove_comments (line)
*comment = '\0';
}
-/* Print N spaces (used by DEBUGPR for target-depth). */
+/* Print N spaces (used in debug for target-depth). */
void
print_spaces (n)
@@ -643,7 +643,7 @@ static void
log_access (flavor)
char *flavor;
{
- if (! debug_flag)
+ if (! ISDB (DB_JOBS))
return;
/* All the other debugging messages go to stdout,
diff --git a/read.c b/read.c
index 9d043ce..1072bda 100644
--- a/read.c
+++ b/read.c
@@ -29,6 +29,7 @@ Boston, MA 02111-1307, USA. */
#include "commands.h"
#include "variable.h"
#include "rule.h"
+#include "debug.h"
#ifndef WINDOWS32
@@ -149,8 +150,7 @@ read_all_makefiles (makefiles)
{
unsigned int num_makefiles = 0;
- if (debug_flag)
- puts (_("Reading makefiles..."));
+ DB (DB_BASIC, (_("Reading makefiles...\n")));
/* If there's a non-null variable MAKEFILES, its value is a list of
files to read first thing. But don't let it prevent reading the
@@ -329,7 +329,7 @@ read_makefile (filename, flags)
pattern_percent = 0;
cmds_started = fileinfo.lineno;
- if (debug_flag)
+ if (ISDB (DB_EXTRA))
{
printf (_("Reading makefile `%s'"), fileinfo.filenm);
if (flags & RM_NO_DEFAULT_GOAL)
diff --git a/remake.c b/remake.c
index a3653f3..cd2b09f 100644
--- a/remake.c
+++ b/remake.c
@@ -23,6 +23,7 @@ Boston, MA 02111-1307, USA. */
#include "commands.h"
#include "dep.h"
#include "variable.h"
+#include "debug.h"
#include <assert.h>
@@ -318,7 +319,7 @@ update_file (file, depth)
change is possible below here until then. */
if (f->considered == considered)
{
- DEBUGPR (_("Pruning file `%s'.\n"));
+ DBF (DB_EXTRA, _("Pruning file `%s'.\n"));
continue;
}
f->considered = considered;
@@ -363,18 +364,19 @@ update_file_1 (file, depth)
register struct dep *d, *lastd;
int running = 0;
- DEBUGPR (_("Considering target file `%s'.\n"));
+ DBF (DB_EXTRA, _("Considering target file `%s'.\n"));
if (file->updated)
{
if (file->update_status > 0)
{
- DEBUGPR (_("Recently tried and failed to update file `%s'.\n"));
+ DBF (DB_EXTRA,
+ _("Recently tried and failed to update file `%s'.\n"));
no_rule_error(file);
return file->update_status;
}
- DEBUGPR (_("File `%s' was considered already.\n"));
+ DBF (DB_EXTRA, _("File `%s' was considered already.\n"));
return 0;
}
@@ -384,10 +386,10 @@ update_file_1 (file, depth)
case cs_deps_running:
break;
case cs_running:
- DEBUGPR (_("Still updating file `%s'.\n"));
+ DBF (DB_EXTRA, _("Still updating file `%s'.\n"));
return 0;
case cs_finished:
- DEBUGPR (_("Finished updating file `%s'.\n"));
+ DBF (DB_EXTRA, _("Finished updating file `%s'.\n"));
return file->update_status;
default:
abort ();
@@ -408,7 +410,7 @@ update_file_1 (file, depth)
check_renamed (file);
noexist = this_mtime == (FILE_TIMESTAMP) -1;
if (noexist)
- DEBUGPR (_("File `%s' does not exist.\n"));
+ DBF (DB_BASIC, _("File `%s' does not exist.\n"));
must_make = noexist;
@@ -418,15 +420,15 @@ update_file_1 (file, depth)
if (!file->phony && file->cmds == 0 && !file->tried_implicit)
{
if (try_implicit_rule (file, depth))
- DEBUGPR (_("Found an implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n"));
else
- DEBUGPR (_("No implicit rule found for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n"));
file->tried_implicit = 1;
}
if (file->cmds == 0 && !file->is_target
&& default_file != 0 && default_file->cmds != 0)
{
- DEBUGPR (_("Using default commands for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n"));
file->cmds = default_file->cmds;
}
@@ -524,13 +526,13 @@ update_file_1 (file, depth)
file->updating = 0;
- DEBUGPR (_("Finished prerequisites of target file `%s'.\n"));
+ DBF (DB_EXTRA, _("Finished prerequisites of target file `%s'.\n"));
if (running)
{
set_command_state (file, cs_deps_running);
--depth;
- DEBUGPR (_("The prerequisites of `%s' are being made.\n"));
+ DBF (DB_EXTRA, _("The prerequisites of `%s' are being made.\n"));
return 0;
}
@@ -543,7 +545,7 @@ update_file_1 (file, depth)
depth--;
- DEBUGPR (_("Giving up on target file `%s'.\n"));
+ DBF (DB_EXTRA, _("Giving up on target file `%s'.\n"));
if (depth == 0 && keep_going_flag
&& !just_print_flag && !question_flag)
@@ -589,15 +591,29 @@ update_file_1 (file, depth)
or its dependent, FILE, is older or does not exist. */
d->changed |= noexist || d_mtime > this_mtime;
- if (debug_flag && !noexist)
+ if (!noexist && ISDB (DB_BASIC|DB_EXTRA))
{
- print_spaces (depth);
+ const char *fmt = 0;
+
if (d_mtime == (FILE_TIMESTAMP) -1)
- printf (_("Prerequisite `%s' does not exist.\n"), dep_name (d));
- else
- printf (_("Prerequisite `%s' is %s than target `%s'.\n"),
- dep_name (d), d->changed ? _("newer") : _("older"), file->name);
- fflush (stdout);
+ {
+ if (ISDB (DB_BASIC))
+ fmt = _("Prerequisite `%s' of target `%s' does not exist.\n");
+ }
+ else if (d->changed)
+ {
+ if (ISDB (DB_BASIC))
+ fmt = _("Prerequisite `%s' is newer than target `%s'.\n");
+ }
+ else if (ISDB (DB_EXTRA))
+ fmt = _("Prerequisite `%s' is older than target `%s'.\n");
+
+ if (fmt)
+ {
+ print_spaces (depth);
+ printf (fmt, dep_name (d), file->name);
+ fflush (stdout);
+ }
}
}
@@ -607,24 +623,26 @@ update_file_1 (file, depth)
if (file->double_colon && file->deps == 0)
{
must_make = 1;
- DEBUGPR (_("Target `%s' is double-colon and has no prerequisites.\n"));
+ DBF (DB_BASIC,
+ _("Target `%s' is double-colon and has no prerequisites.\n"));
}
else if (!noexist && file->is_target && !deps_changed && file->cmds == 0)
{
must_make = 0;
- DEBUGPR (_("No commands for `%s' and no prerequisites actually changed.\n"));
+ DBF (DB_EXTRA,
+ _("No commands for `%s' and no prerequisites actually changed.\n"));
}
if (!must_make)
{
- if (debug_flag)
+ if (ISDB (DB_EXTRA))
{
- print_spaces(depth);
- printf(_("No need to remake target `%s'"), file->name);
- if (!streq(file->name, file->hname))
- printf(_("; using VPATH name `%s'"), file->hname);
- printf(".\n");
- fflush(stdout);
+ print_spaces (depth);
+ printf (_("No need to remake target `%s'"), file->name);
+ if (!streq (file->name, file->hname))
+ printf (_("; using VPATH name `%s'"), file->hname);
+ puts (".");
+ fflush (stdout);
}
notice_finished_file (file);
@@ -642,18 +660,13 @@ update_file_1 (file, depth)
return 0;
}
- DEBUGPR (_("Must remake target `%s'.\n"));
+ DBF (DB_BASIC, _("Must remake target `%s'.\n"));
/* It needs to be remade. If it's VPATH and not reset via GPATH, toss the
VPATH. */
if (!streq(file->name, file->hname))
{
- if (debug_flag)
- {
- print_spaces (depth);
- printf(_(" Ignoring VPATH name `%s'.\n"), file->hname);
- fflush(stdout);
- }
+ DB (DB_BASIC, (_(" Ignoring VPATH name `%s'.\n"), file->hname));
file->ignore_vpath = 1;
}
@@ -662,20 +675,20 @@ update_file_1 (file, depth)
if (file->command_state != cs_finished)
{
- DEBUGPR (_("Commands of `%s' are being run.\n"));
+ DBF (DB_EXTRA, _("Commands of `%s' are being run.\n"));
return 0;
}
switch (file->update_status)
{
case 2:
- DEBUGPR (_("Failed to remake target file `%s'.\n"));
+ DBF (DB_BASIC, _("Failed to remake target file `%s'.\n"));
break;
case 0:
- DEBUGPR (_("Successfully remade target file `%s'.\n"));
+ DBF (DB_BASIC, _("Successfully remade target file `%s'.\n"));
break;
case 1:
- DEBUGPR (_("Target file `%s' needs remade under -q.\n"));
+ DBF (DB_BASIC, _("Target file `%s' needs remade under -q.\n"));
break;
default:
assert (file->update_status >= 0 && file->update_status <= 2);
@@ -827,15 +840,15 @@ check_dep (file, depth, this_mtime, must_make_ptr)
if (!file->phony && file->cmds == 0 && !file->tried_implicit)
{
if (try_implicit_rule (file, depth))
- DEBUGPR (_("Found an implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n"));
else
- DEBUGPR (_("No implicit rule found for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n"));
file->tried_implicit = 1;
}
if (file->cmds == 0 && !file->is_target
&& default_file != 0 && default_file->cmds != 0)
{
- DEBUGPR (_("Using default commands for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n"));
file->cmds = default_file->cmds;
}
diff --git a/remote-cstms.c b/remote-cstms.c
index 18d4ed6..057e50a 100644
--- a/remote-cstms.c
+++ b/remote-cstms.c
@@ -26,6 +26,8 @@ Boston, MA 02111-1307, USA. */
#include "filedef.h"
#include "commands.h"
#include "job.h"
+#include "debug.h"
+
#include <sys/time.h>
#include <netdb.h>
@@ -81,7 +83,7 @@ start_remote_job_p (first_p)
Customs requires a privileged source port be used. */
make_access ();
- if (debug_flag)
+ if (ISDB (DB_EXTRA))
Rpc_Debug(1);
/* Ping the daemon once to see if it is there. */
@@ -122,8 +124,8 @@ start_remote_job_p (first_p)
status = Customs_Host (EXPORT_SAME, &permit);
if (status != RPC_SUCCESS)
{
- if (debug_flag)
- printf ("Customs won't export: %s\n", Rpc_ErrorMessage (status));
+ DB (DB_EXTRA, (_("Customs won't export: %s\n"),
+ Rpc_ErrorMessage (status)));
return 0;
}
diff --git a/vmsfunctions.c b/vmsfunctions.c
index 8356165..4e0cb34 100644
--- a/vmsfunctions.c
+++ b/vmsfunctions.c
@@ -2,9 +2,9 @@
#define KDEBUG 0
-#include <stdio.h>
-#include <ctype.h>
#include "make.h"
+#include "debug.h"
+
#ifdef __DECC
#include <starlet.h>
#endif
@@ -99,13 +99,11 @@ readdir (dfd)
dfd->fab$l_nam->nam$l_rsa = resultspec;
dfd->fab$l_nam->nam$b_rss = MAXNAMLEN;
- if (debug_flag)
- printf (".");
+ DB (DB_EXTRA, ("."));
if (!((i = sys$search (dfd)) & 1))
{
- if (debug_flag)
- printf ("sys$search failed with %d\n", i);
+ DB (DB_EXTRA, ("sys$search failed with %d\n", i));
free (dentry);
return (NULL);
}