让我清楚我的意思是滚动安装。
让我们假设我正在开发一个项目,我将lib libmylib.so安装到/ usr / lib中。
我用来执行此操作的过程只需键入" make install"。
现在让我们假设/ usr / lib已经包含/usr/lib/libmylib.so 和/usr/lib/libmylib.so.1。
我希望autotools生成一个执行
的makefilemv /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"。系统已经恢复,并且我可以安装它。
答案 0 :(得分:0)
您可以在[{1}}中定义install-exec-local
和install-data-local
规则,分别针对(示例)Makefile.am
和libmylib.so
。
automake支持uninstall-local
规则。另一个前缀是mylib.h
,它在相应的规则之后运行。
显然,您的方案不应用于任何已发布的软件。它打破了autotools包的预期行为,特别是对-hook
前缀的硬编码。您可以使用“正确的”libtool versioning,它通常也会安装/usr
元数据文件。