Вариант с VPATH. Впрочем как и предыдущий он тоже страдает от
совпадения имён файлов в разных каталогах. Можно в имени .o файла
закодировать каталог (заменив / на ! и т.п.), можно в $(BUILD)
устроить такую же иерархию подкаталогов... Впрочем, для мелких
проектов решение с VPATH самое адекватное. http://coliru.stacked-crooked.com/a/d02a7dcc21a75d6e