Date: Thu, 01 Dec 2011 13:25:23 +0800 From: Jan Beich <jbeich@tormail.net> To: Max Khon <fjoe@FreeBSD.org> Cc: svn-src-head@freebsd.org, Alexander Best <arundel@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r228157 - head/usr.bin/make Message-ID: <1RVz9v-000LKd-TK@internal.tormail.net> In-Reply-To: <CADe0-4=izivfmpC_w%2BahNRNrqv%2B3rwRiEbX4wEr8FaBB0q-N5A__47869.588880758$1322712390$gmane$org@mail.gmail.com> (Max Khon's message of "Thu, 1 Dec 2011 11:05:55 %2B0700") References: <201111301807.pAUI7cXI008371@svn.freebsd.org> <20111201001646.GA49249@freebsd.org> <CADe0-4=izivfmpC_w%2BahNRNrqv%2B3rwRiEbX4wEr8FaBB0q-N5A__47869.588880758$1322712390$gmane$org@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Max Khon <fjoe@FreeBSD.org> writes: > On Thu, Dec 1, 2011 at 7:16 AM, Alexander Best <arundel@freebsd.org> wrote: >> it would also be nice, if at some point, somebody could dive into the code >> to >> see why 'make buildkernel' will let clang produce coloured output, but >> 'make -j(N>1) buildkernel' doesn't (and why adding a -B switch to that >> command >> fixes it). >> > > This one is simple: job make (-jX) runs commands with stdin/stdout/stderr > redirected to pipes. > -B turns on compat mode for job make. > > This can be demonstrated by running make with -jX or -jX -B with the > following Makefile: > --- cut here --- > all: > @if [ -t 1 ]; then echo "stdout is a tty"; else echo "stdout is not > a tty"; fi > --- cut here --- > > If you really want to see colored output in -jX case you should teach clang > to output ANSI color sequences not only in isatty(1) case, but also > when MAKE_JOBS_FIFO environment variable is present (it is set when make > runs in job mode). Any way to distinguish between `make -jX' connected to tty and `make -jX' redirected to a file then? Otherwise, inconsistent coloring is still there, e.g. $ make >&build.log $ make -j8 >&build.log Index: contrib/llvm/tools/clang/lib/Driver/Tools.cpp =================================================================== --- contrib/llvm/tools/clang/lib/Driver/Tools.cpp (revision 228149) +++ contrib/llvm/tools/clang/lib/Driver/Tools.cpp (working copy) @@ -2115,7 +2115,8 @@ void Clang::ConstructJob(Compilation &C, const Job // them. if (Args.hasFlag(options::OPT_fcolor_diagnostics, options::OPT_fno_color_diagnostics, - llvm::sys::Process::StandardErrHasColors())) + llvm::sys::Process::StandardErrHasColors() || + ::getenv("MAKE_JOBS_FIFO"))) CmdArgs.push_back("-fcolor-diagnostics"); if (!Args.hasFlag(options::OPT_fshow_source_location,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1RVz9v-000LKd-TK>