Любой вариант на make имеет возможность выполнить любую задачу, которая может быть выполнена из командной строки. Действительно, большая часть функциональности сборки любого make-файла будет зависеть от запуска внешних процессов, таких как компилятор, компоновщик, библиотекарь и т. Д. Единственный недостаток, который необходимо сделать, - это то, что существует так много вариантов синтаксиса (nmake, borland make , GNU make и т. Д.), Что делает практически невозможным написание одного кроссплатформенного make-файла.
В ответе на ваш конкретный вопрос учтите следующее:
main.cpp: archive.zip
unzip archive.zip
Это в основном утверждает, что main.cpp зависит от archive.zip, и утверждает, что эту зависимость можно удовлетворить, вызвав команду "unzip".