如何设置'make install'以检查已安装的库/bins 的 md5,并且仅在更改时才安装?



我继承了一个相当大的项目,该项目是使用自动配置/自动制作构建的(configure.ac/Makefile.am 文件有自己的问题,但这是一个单独的问题(。

我的问题是顶级构建+构建安装会生成多个静态和动态库以及二进制文件。目前为止,一切都好。问题是"进行安装"会不分青红皂白地复制这些库/垃圾箱中的每一个。(这需要一段时间(

我希望它只复制已更改的库/bins - 可能通过比较目标文件和源文件的 md5sum 来复制。

我怎样才能在我的 configure.ac/Makefile.am 中连接它?

复制文件的实际程序是install(通常/usr/bin/install(;这是在INSTALL Make变量中定义的。

您的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接受相当多的参数,如果要重新实现兼容的脚本,则可能必须实现其中的某些子集。

最新更新