Прежде всего, суть этого вопроса:
exec make check RUNTESTFLAGS="compile.exp --target_board=atmega128-sim"
Все остальное - просто (правильная) упаковка. Проблема в том, что вы используете приведенный выше синтаксис оболочки Bourne, а не синтаксис Tcl, поэтому приведенное выше заканчивается тем, что RUNTESTFLAGS имеет значение "compile.exp
(с кавычкой), а остальное отправляется в качестве другого аргумента для создания. Не то, что вы хотите! (Tcl позволяет начинать двойные кавычки только с начала слова; bash более мягок.) Правильная версия:
exec make check "RUNTESTFLAGS=compile.exp --target_board=atmega128-sim"
Но проще и намного яснее разделить это, как это:
set runTestFlags "compile.exp --target_board=atmega128-sim"
exec make check RUNTESTFLAGS=$runTestFlags