我有一个使用autotools进行构建/安装/等的包。它是一个用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将它们放在与模块安装相同的位置?
答案 0 :(得分:0)
您希望将$(DESTDIR)
添加为所有这些目录的前缀。那是standard for autotools installs。
顺便说一下,你也可以查看_SCRIPTS
后缀,它允许“make install
”以“官方”方式为你复制你的脚本,从而消除了对这个黑客的需求首先。