Installation autotools仅在更新时安装收割台

Installation autotools仅在更新时安装收割台,installation,autoconf,automake,Installation,Autoconf,Automake,我想配置我的自动工具生成,以便仅当头文件/数据文件比已安装的文件更新时,才安装它们 在Linux上,makefiles get INSTALL=/usr/bin/INSTALL,在Solaris上INSTALL=INSTALL-sh。两者都使用了-C参数,应该可以实现我想要的功能,但我没有看到任何AC_PROG_INSTALL或其他宏的示例,显示如何将其配置为使用-C 是否有一种优雅的方法,或者我会导致一些丑陋的结果?就像William在他的评论中提到的那样,一个干净的解决方案是在配置期间覆盖安

我想配置我的自动工具生成,以便仅当头文件/数据文件比已安装的文件更新时,才安装它们

在Linux上,makefiles get INSTALL=/usr/bin/INSTALL,在Solaris上INSTALL=INSTALL-sh。两者都使用了-C参数,应该可以实现我想要的功能,但我没有看到任何AC_PROG_INSTALL或其他宏的示例,显示如何将其配置为使用-C


是否有一种优雅的方法,或者我会导致一些丑陋的结果?

就像William在他的评论中提到的那样,一个干净的解决方案是在配置期间覆盖安装

如果不希望
makeinstall
触摸
$PREFIX
中的文件,除非需要,请使用
install-C

$ ./configure INSTALL="install -C"
如果要避免由于更改了头的创建时间而重建目标,请使用保留文件的时间戳

$ ./configure INSTALL="install -p"

感觉这是一个最好留给用户的决定。用户总是可以在配置时指定INSTALL来包含-C,或者可以将其放在config.site中。这样可以工作,但我希望在开发过程中减少开发人员的编译时间。也就是说,更改一个库中的一个头,然后重新安装它,并且该库中的所有头时间戳都会更改。如果lib是公共的,那么项目希望重新编译所有内容。要避免这种情况。因此,当开发人员是用户时,让开发人员在安装中配置-c。@CAB:当您的改进针对的是总用户群中的某个(小!)子集时,您打破了对其他人来说最不意外的原则。