# [email protected] / 2015-05-20 17:00:57 -0700:
> 15.2.3 Parallel Test Harness
>
> You can set the TEST_LOGS variable. By default, this variable is computed at
> make run time from the value of TESTS as described above. For example, you
> can use the following:
>
> set x subset*.log; shift
> env TEST_LOGS="foo.log $*" make -e check
>
> What does setting TEST_LOGS do?
it overrides the definition present in the Makefile.
> It is read only in the Makefile file.
no.
> Suppose Makefile looks something like:
>
> TESTS = foo.exe
>
> Then
> TEST_LOGS = foo.log
>
> And the user sets this to
> env TEST_LOGS = bar.log make -e check
>
> What on earth does this mean?
first, it would have to be
env TEST_LOGS=bar.log make -e check
(no ws around the equals sign).
second, it looks like a pilot error, and i would expect make to produce
an error.
> And what does 'set x subset*.log; shift' have to do with anything. It looks
> like something erroneously removed from an existing script and put in the
> document.
that's just defensive shell script programming. if no files match the
pattern, it will expand to nothing, and "set" with no options or arguments
produces a list of all parameters (variables) defined in the current
shell environment (instead of setting argc = 0, argv = {}. to prevent
this mishap you need to ensure that "set" sees at least one argument,
and then shift it off the beginning of argv.
--
roman