*.cから*.oを生成したら、できました
ちょっと長いですが・・・
Makefileのワイルドカード指定みたいに、もうちょっと簡単に書く方法ないですかね

file 'test.exe' => Dir::glob("*.c").map{|t| t.sub(/.c$/, ".o")} do |t|
 sh "gcc #{t.prerequisites.join(' ')} -o #{t.name}"
end