指定要使用安装命令 automake 运行的脚本

指定要使用安装命令 automake 运行的脚本

我目前正在构建一个使用 automake 处理的大型软件包。包由C、C++和Python组成。到目前为止,我在 C/C++ 方面取得了良好的成果,但在涉及 python 依赖项时我遇到了阻碍。

我个人在安装时运行一个脚本,并且我想在make install调用时运行它。目前它由configure.ac 调用,但它在不必要的时间运行。

该脚本做了三件事:

  • 将一些 python 文件放在 /usr/local/lib/python2.7/(dist|site)-packages 中
  • 安装自制的 python 模块
  • 检查 python 和程序依赖项(例如 geckodriver)并在必要时安装它们

我知道 automake 生成的 makefile 是“创建命令”,这些命令是在示例时installuninstall通过示例触发的,我想知道如何告诉 makefile.am 在调用安装时调用 somescript.sh 并在卸载时调用 someOtherscript.sh被调用来删除我的程序安装的内容。

有点像 debian 软件包中的 preinst 脚本。

答案1

我最终找到了一种使用自动工具处理 python 的方法。 Makefile.am 允许您像这样覆盖安装和卸载:

install-exec-local:
    cd src/ && python setup.py install --record $(pythondir)/installed_files.txt

uninstall-local:
    cat $(pythondir)/installed_files.txt | xargs rm -rf \
    rm -r $(sysconfdir)/nina

特别感谢 Kevin Brown 的精彩教程。

https://blog.kevin-brown.com/programming/2014/09/24/combining-autotools-and-setuptools.html

相关内容