У меня есть пакет, который использует autotools для сборки/установки/etc. Это модуль Python, написанный на C++. (Это не важно, кроме как знать, что скрипты python, которые я должен установить, не являются частью того, что строится, т. Е. Они не являются базовыми xxxxx_SOURCES
.) Этот модуль используется исключительно для некоторых «модульных тестов» для драйвера что наша команда распределяется в HW-решении. По разным причинам мне нужно «установить» тесты модуля python с помощью системы.пользовательский установочный крючок и 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
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 помещал их в том же месте, что и установка для модуля?
Спасибо. В конце концов я сделал именно это, но как эксперимент. Процесс, который я использую, предварительно назначив свое присутствие в этой команде, устанавливает DESTDIR при вызове 'make install'. Я действительно не хотел отвечать на свой вопрос, и я не был уверен, что делаю это правильно. –