5941f66f0e
builders for typical Autoconf-style to be much shorten, e.g., . $stdenv/setup genericBuild The generic builder does lots of stuff automatically: - Unpacks source archives specified by $src or $srcs (it knows about gzip, bzip2, tar, zip, and unpacked source trees). - Determines the source tree. - Applies patches specified by $patches. - Fixes libtool not to search for libraries in /lib etc. - Runs `configure'. - Runs `make'. - Runs `make install'. - Strips debug information from static libraries. - Writes nested log information (in the format accepted by `log2xml'). There are also lots of hooks and variables to customise the generic builder. See `stdenv/generic/docs.txt'. * Adapted the base packages (i.e., the ones used by stdenv) to use the generic builder. * We now use `curl' instead of `wget' to download files in `fetchurl'. * Neither `curl' nor `wget' are part of stdenv. We shouldn't encourage people to download stuff in builders (impure!). * Updated some packages. * `buildinputs' is now `buildInputs' (but the old name also works). * `findInputs' in the setup script now prevents inputs from being processed multiple times (which could happen, e.g., if an input was a propagated input of several other inputs; this caused the size variables like $PATH to blow up exponentially in the worst case). * Patched GNU Make to write nested log information in the format accepted by `log2xml'. Also, prior to writing the build command, Make now writes a line `building X' to indicate what is being built. This is unfortunately often obscured by the gigantic tool invocations in many Makefiles. The actual build commands are marked `unimportant' so that they don't clutter pages generated by `log2html'. svn path=/nixpkgs/trunk/; revision=845
126 lines
3.2 KiB
Diff
126 lines
3.2 KiB
Diff
diff -rc make-3.80-orig/job.c make-3.80/job.c
|
||
*** make-3.80-orig/job.c 2002-08-10 03:27:17.000000000 +0200
|
||
--- make-3.80/job.c 2004-03-18 22:13:11.000000000 +0100
|
||
***************
|
||
*** 987,993 ****
|
||
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
|
||
--- 987,993 ----
|
||
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
|
||
Only in make-3.80: job.c~
|
||
diff -rc make-3.80-orig/main.c make-3.80/main.c
|
||
*** make-3.80-orig/main.c 2002-08-10 03:27:17.000000000 +0200
|
||
--- make-3.80/main.c 2004-03-18 22:23:50.000000000 +0100
|
||
***************
|
||
*** 254,259 ****
|
||
--- 254,262 ----
|
||
they appear out of date or not. */
|
||
|
||
int always_make_flag = 0;
|
||
+
|
||
+ int logNesting = 0;
|
||
+
|
||
|
||
/* The usage output. We write it this way to make life easier for the
|
||
translators, especially those trying to translate to right-to-left
|
||
***************
|
||
*** 827,832 ****
|
||
--- 830,842 ----
|
||
}
|
||
|
||
|
||
+ static void closeNesting()
|
||
+ {
|
||
+ while (logNesting--)
|
||
+ printf("\e[q");
|
||
+ }
|
||
+
|
||
+
|
||
#ifndef _AMIGA
|
||
int
|
||
main (argc, argv, envp)
|
||
***************
|
||
*** 854,859 ****
|
||
--- 864,871 ----
|
||
no_default_sh_exe = 1;
|
||
#endif
|
||
|
||
+ atexit(closeNesting);
|
||
+
|
||
default_goal_file = 0;
|
||
reading_file = 0;
|
||
|
||
***************
|
||
*** 2782,2787 ****
|
||
--- 2794,2805 ----
|
||
|
||
/* Use entire sentences to give the translators a fighting chance. */
|
||
|
||
+ if (entering)
|
||
+ {
|
||
+ printf("\e[p");
|
||
+ logNesting++;
|
||
+ }
|
||
+
|
||
if (makelevel == 0)
|
||
if (starting_directory == 0)
|
||
if (entering)
|
||
***************
|
||
*** 2810,2813 ****
|
||
--- 2828,2837 ----
|
||
else
|
||
printf (_("%s[%u]: Leaving directory `%s'\n"),
|
||
program, makelevel, starting_directory);
|
||
+
|
||
+ if (!entering)
|
||
+ {
|
||
+ printf("\e[q");
|
||
+ logNesting--;
|
||
+ }
|
||
}
|
||
Only in make-3.80: main.c~
|
||
diff -rc make-3.80-orig/make.h make-3.80/make.h
|
||
*** make-3.80-orig/make.h 2002-09-11 18:55:44.000000000 +0200
|
||
--- make-3.80/make.h 2004-03-18 22:22:00.000000000 +0100
|
||
***************
|
||
*** 559,562 ****
|
||
--- 559,566 ----
|
||
extern int atomic_stat PARAMS ((const char *file, struct stat *buf));
|
||
extern struct dirent *atomic_readdir PARAMS ((DIR *dir));
|
||
|
||
+
|
||
#endif
|
||
+
|
||
+
|
||
+ extern int logNesting;
|
||
Only in make-3.80: make.h~
|
||
diff -rc make-3.80-orig/remake.c make-3.80/remake.c
|
||
*** make-3.80-orig/remake.c 2002-08-08 02:11:19.000000000 +0200
|
||
--- make-3.80/remake.c 2004-03-18 22:27:04.000000000 +0100
|
||
***************
|
||
*** 1049,1055 ****
|
||
--- 1049,1059 ----
|
||
/* The normal case: start some commands. */
|
||
if (!touch_flag || file->cmds->any_recurse)
|
||
{
|
||
+ message(0, "\e[pbuilding %s", file->name);
|
||
+ logNesting++;
|
||
execute_file_commands (file);
|
||
+ printf("\e[q");
|
||
+ logNesting--;
|
||
return;
|
||
}
|
||
|
||
Only in make-3.80: remake.c~
|