Consider this Makfile: 

```
all: 
    test 1 -eq 2 | cat
    echo 'done'

```

It will be executed with no error. 

I've heard of `set -o pipefail` that I may use like this:

```
all: 
    set -o pipefail;     \
    test 1 -eq 2 | cat;  \
    echo 'done'

```

Apart that it does not work, this writing is very painful. 

Another solution would be to use temporary files. I would like to avoid it. 

What other solution can I use?