我如何设置 'make install' 来检查已安装的 libs/bins 的 md5,并且只有在更改时才安装?
How do i set up 'make install' to check the md5 of the installed libs/bins and only installed if changed?
我继承了一个使用 autoconfigure/automake 构建的相当大的项目(configure.ac/Makefile.am 文件有其自身的问题,但这是一个单独的问题)。
我的问题是顶级构建 + 构建安装会生成多个静态和动态库以及二进制文件。到目前为止,一切都很好。问题是 'make install' 会不加区别地复制每一个 libs/bins。 (这需要一段时间)
我希望它只复制已更改的 libs/bins - 可能通过比较目标文件和源文件的 md5sum。
如何在我的配置中连接它。ac/Makefile.am?
实际复制文件的程序是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
接受相当多的参数,如果您要 re-implement 一个兼容的脚本,您可能必须实施其中的一些 sub-set。
我继承了一个使用 autoconfigure/automake 构建的相当大的项目(configure.ac/Makefile.am 文件有其自身的问题,但这是一个单独的问题)。
我的问题是顶级构建 + 构建安装会生成多个静态和动态库以及二进制文件。到目前为止,一切都很好。问题是 'make install' 会不加区别地复制每一个 libs/bins。 (这需要一段时间)
我希望它只复制已更改的 libs/bins - 可能通过比较目标文件和源文件的 md5sum。
如何在我的配置中连接它。ac/Makefile.am?
实际复制文件的程序是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
接受相当多的参数,如果您要 re-implement 一个兼容的脚本,您可能必须实施其中的一些 sub-set。