nixpkgs/pkgs/development/tools/build-managers/gnumake/log.patch
Eelco Dolstra e12b421add * Merged most of the stdenv-updates branch. Some stuff didn't
merge cleanly right away (kde-4, kernel stuff) so it should be
  merged later.  But the stdenv stuff is all there.

svn path=/nixpkgs/branches/stdenv-updates-merge/; revision=10793
2008-02-20 23:02:41 +00:00

115 lines
3.1 KiB
Diff

diff -rc make-3.81-orig/job.c make-3.81/job.c
*** make-3.81-orig/job.c 2006-03-20 04:03:04.000000000 +0100
--- make-3.81/job.c 2008-02-20 17:41:25.000000000 +0100
***************
*** 1083,1089 ****
appear. */
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
! ? "%s" : (char *) 0, p);
/* Tell update_goal_chain that a command has been started on behalf of
this target. It is important that this happens here and not in
--- 1083,1089 ----
appear. */
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
! ? "\e[3s\e[a%s\e[b" : (char *) 0, p);
/* Tell update_goal_chain that a command has been started on behalf of
this target. It is important that this happens here and not in
diff -rc make-3.81-orig/main.c make-3.81/main.c
*** make-3.81-orig/main.c 2006-03-20 03:36:37.000000000 +0100
--- make-3.81/main.c 2008-02-20 17:41:25.000000000 +0100
***************
*** 886,891 ****
--- 886,900 ----
}
+ static void closeNesting()
+ {
+ while (logNestingStdout--)
+ printf("\e[q");
+ while (logNestingStderr--)
+ fprintf(stderr, "\e[q");
+ }
+
+
#ifdef _AMIGA
int
main (int argc, char **argv)
***************
*** 931,936 ****
--- 940,947 ----
atexit (close_stdout);
#endif
+ atexit(closeNesting);
+
/* Needed for OS/2 */
initialize_main(&argc, &argv);
***************
*** 3095,3100 ****
--- 3106,3117 ----
/* Use entire sentences to give the translators a fighting chance. */
+ if (entering)
+ {
+ printf("\e[p");
+ logNestingStdout++;
+ }
+
if (makelevel == 0)
if (starting_directory == 0)
if (entering)
***************
*** 3124,3129 ****
--- 3141,3155 ----
printf (_("%s[%u]: Leaving directory `%s'\n"),
program, makelevel, starting_directory);
+ if (!entering)
+ {
+ printf("\e[q");
+ logNestingStdout--;
+ }
+
/* Flush stdout to be sure this comes before any stderr output. */
fflush (stdout);
}
+
+ int logNestingStdout = 0;
+ int logNestingStderr = 0;
diff -rc make-3.81-orig/make.h make-3.81/make.h
*** make-3.81-orig/make.h 2006-02-16 00:54:43.000000000 +0100
--- make-3.81/make.h 2008-02-20 17:41:25.000000000 +0100
***************
*** 609,611 ****
--- 609,613 ----
#define ENULLLOOP(_v,_c) do{ errno = 0; \
while (((_v)=_c)==0 && errno==EINTR); }while(0)
+ extern int logNestingStdout;
+ extern int logNestingStderr;
diff -rc make-3.81-orig/remake.c make-3.81/remake.c
*** make-3.81-orig/remake.c 2006-03-20 03:36:37.000000000 +0100
--- make-3.81/remake.c 2008-02-20 17:44:01.000000000 +0100
***************
*** 1120,1126 ****
--- 1120,1131 ----
/* The normal case: start some commands. */
if (!touch_flag || file->cmds->any_recurse)
{
+ log_working_directory (1);
+ fprintf(stderr, "\e[pbuilding %s\n", file->name);
+ logNestingStderr++;
execute_file_commands (file);
+ fprintf(stderr, "\e[q");
+ logNestingStderr--;
return;
}