Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Dec 2011 11:05:55 +0700
From:      Max Khon <fjoe@FreeBSD.org>
To:        Alexander Best <arundel@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r228157 - head/usr.bin/make
Message-ID:  <CADe0-4=izivfmpC_w%2BahNRNrqv%2B3rwRiEbX4wEr8FaBB0q-N5A@mail.gmail.com>
In-Reply-To: <20111201001646.GA49249@freebsd.org>
References:  <201111301807.pAUI7cXI008371@svn.freebsd.org> <20111201001646.GA49249@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Alexander,

On Thu, Dec 1, 2011 at 7:16 AM, Alexander Best <arundel@freebsd.org> wrote:

> Author: fjoe
> > Date: Wed Nov 30 18:07:38 2011
> > New Revision: 228157
> > URL: http://svn.freebsd.org/changeset/base/228157
> >
> > Log:
> >   - Fix segmentation fault when running "+command" when run with -jX -n
> due
> >   to Compat_RunCommand() being called with `cmd' that is not on the
> node->commands
> >   list
> >   - Make ellipsis ("..." command) handling consistent: check for "..."
> command
> >   in job make after variables expansion to match compat make behavior
> >   - Fix empty command handling (after variables expansion and @+-
> modifiers
> >   are processed): now empty commands are ignored in compat make and are
> not
> >   printed in job make case
> >   - Bump MAKE_VERSION to 5-2011-11-30-0
>
> 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).

Max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADe0-4=izivfmpC_w%2BahNRNrqv%2B3rwRiEbX4wEr8FaBB0q-N5A>