--- /dev/null
+#!/bin/sh
+# © 2011 Cyril Brulebois <kibi@debian.org>
+#
+# Usage:
+# Call this script from debian/rules, before dh_gencontrol is run,
+# to get all needed variables computed in debian/$p.substvars for
+# each package $p found through dh_listpackages.
+# .
+# This script has support for udebs.
+set -e
+
+# Sanity check. All drivers build-depend on debhelper:
+if ! which dh_listpackages >/dev/null 2>&1; then
+ echo "E: dh_listpackages not found, debhelper package missing?"
+ exit 1
+fi
+
+# Read the dependencies once:
+INPUTDEP=$(cat /usr/share/xserver-xorg/xinputdep 2>/dev/null)
+VIDEODEP=$(cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null)
+
+# Iterate on the packages:
+for package in $(dh_listpackages); do
+ case $package in
+ *-udeb)
+ # udebs depend on udebs, tweak the dependency on the server:
+ inputdep=$(echo "$INPUTDEP"|sed 's/xserver-xorg-core/&-udeb/')
+ videodep=$(echo "$VIDEODEP"|sed 's/xserver-xorg-core/&-udeb/')
+ ;;
+ *)
+ # just copy the dependencies read previously:
+ inputdep="$INPUTDEP"
+ videodep="$VIDEODEP"
+ esac
+
+ # To avoid having "unused substitution variable" warnings from
+ # dpkg-gencontrol, only set variables which make sense:
+ case $package in
+ *-dbg|*-dev|*-all)
+ # debug, devel, or meta package, no need for Depends/Provides.
+ :
+ ;;
+ xserver-xorg-input-*)
+ # input driver:
+ echo "xinpdriver:Depends=$inputdep" >> debian/$package.substvars
+ echo "xinpdriver:Provides=xorg-driver-input" >> debian/$package.substvars
+ ;;
+ xserver-xorg-video-*)
+ # video driver:
+ echo "xviddriver:Depends=$videodep" >> debian/$package.substvars
+ echo "xviddriver:Provides=xorg-driver-video" >> debian/$package.substvars
+ esac
+done