make >& >(while read f; do echo -n .; done; echo)
Очевидно, что это решение оболочки, но точка как индикатор прогресса - это точка.
Конечно, вы можете вставить туда тройник, чтобы сохранить копию марки в файл в случае проблем.
Поскольку вам, похоже, не понравился (не проголосовал и не принял) решение оболочки по какой-то необъяснимой причине, вот чисто Perl:
if (open(X,"make|")) { local($|)=1; while(<X>) { print "."; } close(X); print "\n";}