我继承了一个使用autoconfigure / automake构建的相当大的项目(configure.ac/Makefile.am文件有其自身的问题,但这是一个单独的问题)。
我的问题是顶级构建+构建安装会生成几个静态和动态库以及二进制文件。到目前为止,一切都很好。问题在于,“ make install”会不加选择地复制这些库/ bin的每个库。 (这需要一段时间)
我希望它仅复制已更改的lib / bins-可能是通过比较目标文件和源文件的md5sum。
如何将其连接到configure.ac/Makefile.am中?
答案 0 :(得分:1)
用于复制文件的实际程序为install
(通常为/usr/bin/install
);这是在INSTALL
变量中定义的。
您的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
接受了大量参数,如果要重新实现兼容的脚本,则可能必须实现其一些子集。