Традиционный способ сделать это используется makepp , только если он запрашивается через build_check target_newer
. Это связано с тем, что сетевые файловые системы не всегда согласовывают временные метки и могут изменяться при копировании файла. Также файловые системы с точностью до секунды (FAT и 2 с) по-прежнему широко распространены. Многое может произойти в это время в наше время.
Поэтому makepp вычисляет интеллектуальную подпись содержимого (исключая комментарии и неважные пробелы, например, для языка языков C). Затем это сохраняется в .makepp/yoursourcename.mk
и будет взято в следующий раз, чтобы увидеть, изменилось ли что-то существенное. Умные подписи всех зависимостей (которые автоматически обнаруживаются между прочим), а также командная строка и некоторые другие подробности решают, требуется ли перестроение.
Есть еще много чего сделать. Помимо выполнения почти всего, что может сделать GNU make, есть еще много полезных вещей, и вы даже можете расширить свои make-файлы с помощью некоторого программирования на Perl.