А потом оказывается, что «просто запустить javac недостаточно».
Например, если есть 2 модуля, один зависит от другого, то Gradle понимает «изменился ли public API», и, если не поменялось, то оно понимает, что перекомпилировать не нужно.
Как такое реализовать на make?