Необходимо перенаправить STDERR к STDOUT для всех команд. Затем можно передать все это по каналу в myprogram
.
( make clean 2>&1 && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" 2>&1 ) | myprogram
Кажется, что Вы не должны разделять команды в этом случае (&
разделенный их самостоятельно).
Например.
$> if true; then (sleep 3; echo ok) & fi
[1] 14224
$> ok
Это потому что &
уже разделитель операторов, таким образом, Вы не должны помещать ;
после этого.
Попробуйте написать его многострочным:
if true; then
sleep 3 &
fi