I frequently find it hard to find warnings/errors when cc compile lines become really long... as they do in many projects I work on -- it's not uncommon for each cc line to be 300+ characters. The "make -s" option is too quiet for my tastes. This new "make -z" option prints only "building foobar" for each foobar that is built. Dean diff -ru make-3.76.1/filedef.h make-3.76.1.local/filedef.h --- make-3.76.1/filedef.h Wed Aug 27 13:31:10 1997 +++ make-3.76.1.local/filedef.h Tue Jul 21 15:17:30 1998 @@ -80,6 +80,8 @@ unsigned int dontcare:1; /* Nonzero if no complaint is to be made if this target cannot be remade. */ unsigned int ignore_vpath:1;/* Nonzero if we threw out VPATH name */ + unsigned int printed_building:1;/* Nonzero if we already printed + "building foo" under -z */ }; /* Number of intermediate files entered. */ diff -ru make-3.76.1/job.c make-3.76.1.local/job.c --- make-3.76.1/job.c Fri Sep 5 14:01:57 1997 +++ make-3.76.1.local/job.c Tue Jul 21 15:25:32 1998 @@ -781,8 +781,16 @@ can log the working directory before the command's own error messages appear. */ - message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag)) - ? "%s" : (char *) 0, p); + if (semi_silent_flag && !(flags & COMMANDS_SILENT) && !silent_flag) { + if (!child->file->printed_building) { + message (0, "building %s", child->file->name); + child->file->printed_building = 1; + } + } + else { + message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag)) + ? "%s" : (char *) 0, p); + } /* Optimize an empty command. People use this for timestamp rules, and forking a useless shell all the time leads to inefficiency. */ diff -ru make-3.76.1/main.c make-3.76.1.local/main.c --- make-3.76.1/main.c Fri Sep 19 06:20:44 1997 +++ make-3.76.1.local/main.c Tue Jul 21 15:10:10 1998 @@ -115,6 +115,10 @@ int silent_flag; +/* Nonzero means print "building %s" rather than commands (-z). */ + +int semi_silent_flag; + /* Nonzero means just touch the files that would appear to need remaking (-t) */ @@ -322,6 +326,9 @@ { 3, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0, "warn-undefined-variables", 0, "Warn when an undefined variable is referenced" }, + { 'z', flag, (char *) &semi_silent_flag, 1, 1, 0, 0, 0, + "semi-silent", 0, + "Don't echo commands, but do print \"building foo\"" }, { '\0', } }; diff -ru make-3.76.1/make.h make-3.76.1.local/make.h --- make-3.76.1/make.h Wed Aug 27 13:31:16 1997 +++ make-3.76.1.local/make.h Tue Jul 21 15:11:33 1998 @@ -406,7 +406,7 @@ extern char *reading_filename; extern unsigned int *reading_lineno_ptr; -extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag; +extern int just_print_flag, silent_flag, semi_silent_flag, ignore_errors_flag, keep_going_flag; extern int debug_flag, print_data_base_flag, question_flag, touch_flag; extern int env_overrides, no_builtin_rules_flag, print_version_flag; extern int print_directory_flag, warn_undefined_variables_flag;