【发布时间】:2016-07-16 00:57:42
【问题描述】:
我有一个使用自动工具进行构建/安装/等的软件包。它是一个用 C++ 编写的 Python 模块。 (这并不重要,只是要知道我必须安装的 python 脚本不是正在构建的内容的一部分,即它们不是xxxxx_SOURCES 主要的。)这个模块仅用于一些“单元测试”我们团队在硬件解决方案中分发的驱动程序。由于各种原因,我需要在系统中“安装”python 单元测试。
由于这些 python 脚本不是模块的一部分,我在 Makefile 中单独管理安装。这是我在Makefile.am 中的内容:
EXTRA_DIST = setupenv.sh bootstrap tests
dist-hook:
rm -rf $$(find $(distdir)/tests -name \*.swp -o -name \*.pyc)
install-exec-hook:
mkdir -p $(prefix)/unit_tests/unittest2
for f in tests/*.py; do \
cp $$f $(prefix)/unit_tests; \
done
for f in tests/unittest2/*.py; do \
cp $$f $(prefix)/unit_tests/unittest2; \
done
uninstall-hook:
rm -r $(prefix)/unit_tests
这工作得很好,除了在模块的rpmbuild 期间。 install-exec-hook 规则未正确写入以创建 rpm 进程重定向它的目录。也就是说,当mkdir - $(prefix)/... 被执行时,脚本会尝试创建目录:/opt/oursw/...。应该如何重写这条规则,以便 rpmbuild 将它们放在与模块安装相同的位置?
【问题讨论】:
标签: makefile rpm autotools rpmbuild