summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules127
1 files changed, 127 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..c33c34e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,127 @@
+#!/usr/bin/make -f
+#export DH_VERBOSE=1
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+
+ifeq ($(DEB_HOST_ARCH_OS),)
+ DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))
+ ifeq ($(DEB_HOST_ARCH_OS),gnu)
+ DEB_HOST_ARCH_OS := hurd
+ endif
+endif
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -g
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+ INSTALL_STRIP_FLAG = ""
+ STRIP = ""
+endif
+
+%:
+ dh $@ --parallel --with autotools_dev
+
+override_dh_auto_configure:
+ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr \
+ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --datadir=\$${prefix}/share \
+ --mandir=\$${prefix}/share/man \
+ --with-docdir=\$${prefix}/share/doc/libsane \
+ --with-snmp=no \
+ --disable-locking \
+ --enable-static \
+ --enable-pthread \
+ --with-gphoto2 \
+ --enable-translations \
+ --enable-avahi \
+ --enable-libusb_1_0
+
+override_dh_auto_build:
+ # generate POT file for translators
+ (cd po && make sane-backends.pot)
+ $(MAKE)
+
+override_dh_auto_clean:
+ # Autoconf-generated files
+ $(RM) include/byteorder.h include/_stdint.h
+ # Add here commands to clean up after the build process.
+ [ ! -f Makefile ] || $(MAKE) distclean
+ $(RM) debian/libsane-common.install
+ $(RM) debian/libsane.udev
+ dh_auto_clean
+
+override_dh_auto_install:
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+ # remove /usr/lib/sane/libsane.so.1 (libtool side-effect ?)
+ $(RM) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/sane/libsane.so.1
+ # remove libsane-dll, same as regular libsane
+ $(RM) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/sane/libsane-dll.*
+ # install only the manpages for the backends which have been built
+ cp debian/libsane-common.install.in debian/libsane-common.install
+ ls debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/sane/*.so | sed -e \
+ "s#.*/lib\([^.]\+\)[.]so#usr/share/man/man5/\1.5#" | { while read mp; do \
+ test -e debian/tmp/$$mp && echo $$mp >> debian/libsane-common.install; done }
+ # Empty dependency_libs in all .la files
+ find debian/tmp/usr -name "*.la" -type f -exec sed -e "s,^dependency_libs=.*,dependency_libs=''," -i {} \;
+
+override_dh_install:
+ dh_install
+ # Install HAL fdi file
+ mkdir -p $(CURDIR)/debian/libsane-common/usr/share/hal/fdi/preprobe/10osvendor
+ $(CURDIR)/tools/sane-desc -s $(CURDIR)/doc/descriptions -m hal-new > \
+ $(CURDIR)/debian/libsane-common/usr/share/hal/fdi/preprobe/10osvendor/20-libsane.fdi
+ # Install the pkg-config file
+ mkdir -p debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/
+ cp tools/sane-backends.pc debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/
+
+override_dh_installdocs:
+ dh_installdocs
+ # move files that belong to libsane-dev
+ mv debian/tmp/usr/share/doc/libsane/sane.ps debian/libsane-dev/usr/share/doc/libsane-dev/
+ mv debian/tmp/usr/share/doc/libsane/backend-writing.txt debian/libsane-dev/usr/share/doc/libsane-dev/
+ # Platform-specific documentation
+ # move the html files into html/
+ install -d debian/libsane-common/usr/share/doc/libsane/html
+ mv debian/tmp/usr/share/doc/libsane/*.html debian/libsane-common/usr/share/doc/libsane/html/
+ # create the /etc/sane.d/dll.d directory in libsane
+ install -d debian/libsane/etc/sane.d/dll.d
+ $(RM) debian/libsane/etc/sane.d/saned.conf
+ifeq (kfreebsd,$(DEB_HOST_ARCH_OS))
+ cp README.freebsd debian/libsane-common/usr/share/doc/libsane/
+endif
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+ cp README.linux debian/libsane-common/usr/share/doc/libsane/
+endif
+
+override_dh_installudev:
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+ # udev support
+ # Generate the udev rules file
+ $(CURDIR)/tools/sane-desc -s $(CURDIR)/doc/descriptions -m udev+acl > $(CURDIR)/debian/libsane.udev
+ dh_installudev
+endif
+
+ # remove rpath from the binaries (wonderful tool !)
+ chrpath -d debian/sane-utils/usr/sbin/saned
+ chrpath -d debian/sane-utils/usr/bin/scanimage
+ chrpath -d debian/sane-utils/usr/bin/sane-find-scanner
+
+override_dh_installinit:
+ dh_installinit -psane-utils --name=saned --error-handler=saned_eh
+
+override_dh_strip:
+ dh_strip --dbg-package=libsane-dbg
+
+override_dh_builddeb:
+ dh_builddeb -- -Zxz
+