可以将autotools配置为执行滚动安装/卸载吗?

时间:2015-06-22 10:30:25

标签: autotools

让我清楚我的意思是滚动安装。

让我们假设我正在开发一个项目,我将lib libmylib.so安装到/ usr / lib中。

我用来执行此操作的过程只需键入" make install"。

现在让我们假设/ usr / lib已经包含/usr/lib/libmylib.so 和/usr/lib/libmylib.so.1。

我希望autotools生成一个执行

的makefile
mv /usr/lib/libmylib.so.1 /usr/lib/libmylib.so.2
mv /usr/lib/libmylib.so  /usr/lib/libmylib.so.1
install libmylib.so into /usr/lib

我还想,对于一些固定数字N,只需删除/usr/lib/libmylib.so.N而不是移动它。

我还想要一个make target uninstall,这样当我做" make unstall"。系统已经恢复,并且我可以安装它。

1 个答案:

答案 0 :(得分:0)

您可以在[{1}}中定义install-exec-localinstall-data-local规则,分别针对(示例)Makefile.amlibmylib.so

automake支持uninstall-local规则。另一个前缀是mylib.h,它在相应的规则之后运行

显然,您的方案不应用于任何已发布的软件。它打破了autotools包的预期行为,特别是对-hook前缀的硬编码。您可以使用“正确的”libtool versioning,它通常也会安装/usr元数据文件。