diff --git a/doc/manual/nix-env.xml b/doc/manual/nix-env.xml
index 702faa621..c73716381 100644
--- a/doc/manual/nix-env.xml
+++ b/doc/manual/nix-env.xml
@@ -9,6 +9,8 @@
nix-env
+
+
diff --git a/doc/manual/nix-store.xml b/doc/manual/nix-store.xml
index 479c1c3b0..8c6bcfe37 100644
--- a/doc/manual/nix-store.xml
+++ b/doc/manual/nix-store.xml
@@ -9,6 +9,8 @@
nix-store
+
+
operation
diff --git a/doc/manual/opt-verbose.xml b/doc/manual/opt-verbose.xml
index 3868acf30..53fe07ae7 100644
--- a/doc/manual/opt-verbose.xml
+++ b/doc/manual/opt-verbose.xml
@@ -71,3 +71,17 @@
+
+
+ /
+
+
+ Causes the output written by build actions to standard output
+ and standard error to be echoed to standard error, regardless of
+ verbosity level. By default, it is only echoed at a verbosity
+ level of at least 4 (Debug
), and is suppressed at
+ lower levels. Note that it is always written to a log file in
+ prefix/nix/var/log/nix.
+
+
+
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 92349488e..24bedb3fb 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -51,6 +51,8 @@ static void initAndRun(int argc, char * * argv)
string arg = *i;
if (arg == "--verbose" || arg == "-v")
verbosity = (Verbosity) ((int) verbosity + 1);
+ else if (arg == "--build-output" || arg == "-B")
+ buildVerbosity = lvlError; /* lowest */
else if (arg == "--help") {
printHelp();
return;
diff --git a/src/libstore/exec.cc b/src/libstore/exec.cc
index 2adf03841..b25423b44 100644
--- a/src/libstore/exec.cc
+++ b/src/libstore/exec.cc
@@ -22,7 +22,7 @@ void runProgram(const string & program,
{
/* Create a log file. */
string logCommand =
- verbosity >= lvlDebug
+ verbosity >= buildVerbosity
? "tee " + logFileName + " >&2"
: "cat > " + logFileName;
/* !!! auto-pclose on exit */
diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc
index e5d76ff48..b3c658c29 100644
--- a/src/libstore/globals.cc
+++ b/src/libstore/globals.cc
@@ -7,3 +7,5 @@ string nixStateDir = "/UNINIT";
string nixDBPath = "/UNINIT";
bool keepFailed = false;
+
+Verbosity buildVerbosity = lvlDebug;
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 3da294cc8..5d5e9efcf 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -2,6 +2,7 @@
#define __GLOBALS_H
#include
+#include "util.hh"
using namespace std;
@@ -28,5 +29,8 @@ extern string nixDBPath;
/* Whether to keep temporary directories of failed builds. */
extern bool keepFailed;
+/* Verbosity level for build output. */
+extern Verbosity buildVerbosity;
+
#endif /* !__GLOBALS_H */