Как настроить 'make install', чтобы проверить md5 установленных библиотек / библиотек и только установленных, если они были изменены? - PullRequest
0 голосов
/ 03 июня 2019

Я унаследовал довольно большой проект, созданный с помощью autoconfigure / automake (у файлов configure.ac/Makefile.am есть свои проблемы, но это отдельный вопрос).

Моя проблема в том, чтосборка верхнего уровня build + build устанавливает несколько статических и динамических библиотек, а также двоичные файлы.Все идет нормально.Проблема в том, что «make install» будет без разбора копировать каждую из этих библиотек / библиотек.(Это занимает некоторое время)

Я бы хотел, чтобы он копировал только измененные библиотеки / библиотеки, возможно, путем сравнения md5sum целевых и исходных файлов.

Как я могу подключитьсяэто в моем configure.ac/Makefile.am?

1 Ответ

1 голос
/ 12 июня 2019

Фактическая программа для копирования файлов: install (обычно /usr/bin/install);это определено в INSTALL Make-variable.

Ваша реализация install может поддерживать флаг -C:

   -C, --compare
          compare each pair of source and destination files, 
          and in some cases, do not modify the destination at all

, который может потребоваться, поэтому вы можете попытаться предоставитьскрипт, который делает то, что вы хотите (сравните исходный файл с файлом назначения и копируйте только при необходимости), переопределив эту переменную.Вы также можете просто ввести флаг -C, чтобы увидеть, дает ли он вам какое-либо ускорение (я склонен согласиться с комментарием ldav1s, что он может и не быть):

make install INSTALL="/usr/bin/install -C"

обратите внимание, что install принимаетдовольно много аргументов, и если вы собираетесь повторно реализовать совместимый скрипт, вам, возможно, придется реализовать какой-то его поднабор.

...