Makefile 自定义安装挂钩和rpmbuild 我有一个使用自动工具进行构建/安装等的软件包,它是用C++编写的Python模块。(这并不重要,除非知道我必须安装的python脚本不是正在构建的部分,也就是说,它们不是xxxxx\u源代码primary。)此模块仅用于我们团队在硬件解决方案中分发的驱动程序的一些“单元测试”。出于各种原因,我需要在系统中“安装”python单元测试
由于这些python脚本不是模块的一部分,因此我将在Makefile中单独管理安装。以下是我的Makefile 自定义安装挂钩和rpmbuild 我有一个使用自动工具进行构建/安装等的软件包,它是用C++编写的Python模块。(这并不重要,除非知道我必须安装的python脚本不是正在构建的部分,也就是说,它们不是xxxxx\u源代码primary。)此模块仅用于我们团队在硬件解决方案中分发的驱动程序的一些“单元测试”。出于各种原因,我需要在系统中“安装”python单元测试,makefile,rpm,autotools,rpmbuild,Makefile,Rpm,Autotools,Rpmbuild,由于这些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
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)/…
时,脚本会尝试使dir:/opt/oursw/…。如何重写此规则,以便rpmbuild将它们放置在与模块安装相同的位置?您希望将$(DESTDIR)
作为前缀添加到所有这些目录中。那太好了
另一方面,您可能还想看看\u SCRIPTS
后缀,它允许“make install
”以“官方”的方式为您复制脚本,从一开始就不需要这种黑客行为。谢谢。最后我只是做了这个,但作为一个实验。我正在利用的过程,预先确定我在团队中的存在,在调用makeinstall
时设置DESTDIR。我真的不想回答我自己的问题,我也不确定我是不是用正确的方式来做的。