我继承了一个相当大的项目,该项目是使用自动配置/自动制作构建的(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
接受相当多的参数,如果要重新实现兼容的脚本,则可能必须实现其中的某些子集。