compilationバッファでのエラー行ファイルについて

M-x compile で、C++のプログラムをコンパイルしたときとかに、エラーが発生すると、大抵は*compilation*バッファに移動して、TAB - RETでエラー行に飛ぶ・・・という流れになると思います。

なんですが、

./src
./src/test

という環境でテストを実行していると、test中で発生したエラーにたいして、../hoge.cppとかいう形式でエラーが発生します。
このエラーが発生したときのmakeを実行したディレクトリがsrcとかだったりすると、「そんなファイルないんだけど」と言われ、空のバッファが作成されてしまいます。

これ、なんとかならんもんですかねぇ。gccのオプションにもそういうのはなさそうですし。

・・・まぁ、上記の構成を

./src
./test

としてしまえばいいんじゃね?と言われればそれまでなのですが、というか普通はそうなるような気もします。
後はMakefileの書き方なんでしょうかねぇ。Makefile.amを書くときに、

SRC=../src
bin_PROGRAMS = $SRC/hoge.cpp

という書き方にすればいいような気もします。面倒なことは面倒ですけど。