(旁白:这似乎是上游 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}
and $${bindir}
,但我没有看到任何常见的东西。
请注意dh_link
,即使给定绝对路径,也会尽可能建立相对链接。如果这是一个问题,你可能不得不求助于一些非常讨厌的东西,比如
cd debian/$(cdbs_curpkg) && ln -s ...