Для документирования подхода, который кажется многообещающим, но не работает - команда оболочки:
find . -type d -mindepth 1 -maxdepth 1 -print | while read -r DIR; do pushd $DIR; make -q; mk=$?; make -q install; inst=$?; make -q test; tst=$?; echo Directory "$DIR $mk $inst $tst"; popd; done| fgrep -ve /build
при выполнении в директории сборки cpan перечисляет состояния выхода make -q для "", "test" и "install", в которых указывается, требует ли эта цель какой-либо работы для достижения.
Но у всех есть ненулевые статусы выхода, что означает, что они все сделают что-то, если вы их выполните, даже если make был успешно завершен. Таким образом, вы не можете ничего сказать таким образом.