(в стороне: Это похоже на то, что вверх по течению Makefile должен делать, а не вниз по течению упаковки.)
Зависит от рамки вы используете для вашего файла rules
.
В CDBS, что-то, как это должно работать ...
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
# probably what you want (automagic happens),
# but I don't know details of your package
#include /usr/share/cdbs/1/class/automake.mk
DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[~-].*//')
install/$(DEB_ALL_PACKAGES)::
dh_link -p$(cdbs_curpkg) \
/usr/lib/$(cdbs_curpkg)-$(VERSION)/$(cdbs_curpkg) \
/usr/bin/$(cdbs_curpkg)
Если у вас есть лучший способ получить версию (скажем, $(shell cat version.txt))
), используйте его. Версия Debian не всегда является исходной версией пакета; здесь я снимаю версию эпохи и упаковки, если таковые имеются, но это не всегда правильно.
Другие классы CDBS могут определять $${libdir}
и $${bindir}
, но я не видел ничего общего.
Обратите внимание, что dh_link
будет относить относительные ссылки, если это возможно, даже если указаны абсолютные пути. Если это проблема, вы, возможно, придется прибегнуть к чему-то очень неприятный, как
cd debian/$(cdbs_curpkg) && ln -s ...
Благодарим за ответ. Я использовал только скелет из dh_make. CDBS выглядит довольно интересно. –
'dh_make -b' предоставит вам правила CDBS скелета. – ephemient