From 4b0a61dc35198ca27e03c3c1178855118d5138ae Mon Sep 17 00:00:00 2001
From: Thomas Moulard <thomas.moulard@gmail.com>
Date: Sun, 9 Jun 2013 19:57:28 +0900
Subject: [PATCH] Disable dependencies on platforms where they are not
 available.

---
 debian/rules | 57 +++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 45 insertions(+), 12 deletions(-)

diff --git a/debian/rules b/debian/rules
index 30ea4912..f91b1d59 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,7 +1,7 @@
 #!/usr/bin/make -f
 # -*- makefile -*-
 
-# Hardening.
+# Hardening flags.
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
 
 CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
@@ -9,9 +9,52 @@ CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
 CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
 LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
 
+# Duplicate flags as CMake is ignoring CPPFLAGS.
 CFLAGS+=$(CPPFLAGS)
 CXXFLAGS+=$(CPPFLAGS)
 
+# Retrieve environment information.
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+
+# Configura package and enable dependencies available on all platforms.
+# dc1394: off (obsolete)
+# libav (ffmpeg): available on all platforms
+# opencv: available on all platforms
+# coin3: available on all platforms
+# lapack: available on all platforms
+# ogre: available on all platforms
+# xml2: available on all platforms
+# libjpeg6b: available on all platforms
+# libpng: available on all platforms
+# libx11: available on all platforms
+CONFIGURE_ARGS=	\
+ -DCMAKE_INSTALL_LIBDIR:STRING="lib/$(DEB_HOST_MULTIARCH)"	\
+ -DBUILD_DEMOS=ON -DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON	\
+ -DBUILD_SHARED_LIBS=ON						\
+ -DUSE_DC1394_1=OFF -DUSE_FFMPEG=ON				\
+ -DUSE_OPENCV=ON 						\
+ -DUSE_COIN=ON -DUSE_GSL=OFF					\
+ -DUSE_LAPACK=ON -DUSE_OGRE=ON					\
+ -DUSE_XML2=ON -DUSE_GTK2=ON -DUSE_LIBJPEG=ON			\
+ -DUSE_LIBPNG=ON -DUSE_X11=ON
+
+# dc1394, v4l and ois are only available on Linux.
+ifneq ($(DEB_HOST_ARCH_OS),linux)
+  CONFIGURE_ARGS += -DUSE_DC1394_2=OFF -DUSE_V4L2:BOOL=OFF -DUSE_OIS=OFF
+else
+  CONFIGURE_ARGS += -DUSE_DC1394_2=ON -DUSE_V4L2:BOOL=ON -DUSE_OIS=ON
+endif
+
+# freenect is not available on hurd.
+ifeq ($(DEB_HOST_ARCH_OS),hurd)
+  CONFIGURE_ARGS += -DLIBFEENECT=OFF
+else
+  CONFIGURE_ARGS += -DLIBFEENECT=ON
+endif
+
+
 .PHONY: override_dh_auto_configure	\
 	override_dh_auto_build		\
 	override_dh_strip		\
@@ -26,17 +69,7 @@ override_dh_auto_clean:
 	rm -rf .pc
 
 override_dh_auto_configure:
-	dh_auto_configure -- \
-		-DBUILD_DEMOS=ON -DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON \
-		-DBUILD_SHARED_LIBS=ON					\
-		-DUSE_DC1394_1=OFF -DUSE_FFMPEG=ON			\
-		-DUSE_DC1394_2=ON -DUSE_V4L2=ON -DUSE_OPENCV=ON 	\
-		-DUSE_COIN=ON -DUSE_GSL=OFF				\
-		-DUSE_LAPACK=ON -DUSE_OGRE=ON				\
-		-DUSE_XML2=ON -DUSE_GTK2=ON -DUSE_LIBJPEG=ON		\
-		-DUSE_LIBPNG=ON						\
-		-DUSE_LIBFREENECT=ON -DUSE_X11=ON -DUSE_OIS=ON		\
-		-DCMAKE_INSTALL_LIBDIR:STRING="lib/$(DEB_HOST_MULTIARCH)"
+	dh_auto_configure -- $(CONFIGURE_ARGS)
 
 override_dh_auto_build:
 	dh_auto_build -- # Compile the software.
-- 
GitLab