Ver código fonte

Changed automake files and code to support enabling/disabling of different drivers.

Fredrik Hultin 10 anos atrás
pai
commit
a07c48bd06
3 arquivos alterados com 32 adições e 5 exclusões
  1. 13 1
      configure.ac
  2. 17 4
      src/Makefile.am
  3. 2 0
      src/openhmd.c

+ 13 - 1
configure.ac

@@ -34,7 +34,19 @@ case "$host" in
 	;;
 esac
 
-PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)
+# Oculus Rift Driver
+AC_ARG_ENABLE([driver-oculus-rift],
+        [AS_HELP_STRING([--enable-driver-oculus-rift],
+                [enable building of Oculus Rift driver (default y)])],
+        [driver_oculus_rift_enabled=$enableval],
+        [driver_oculus_rift_enabled='yes'])
+
+AM_CONDITIONAL([BUILD_DRIVER_OCULUS_RIFT], [test "x$driver_oculus_rift_enabled" != "xno"])
+
+# Libs required by Oculus Rift Driver
+if test "x$driver_oculus_rift_enabled" != "xno"; then
+	PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)
+fi
 
 # Do we build OpenGL example?
 AC_ARG_ENABLE([openglexample],

+ 17 - 4
src/Makefile.am

@@ -6,12 +6,25 @@ lib_LTLIBRARIES = libopenhmd.la
 libopenhmd_la_SOURCES = \
 	openhmd.c \
 	platform-win32.c \
-	drv_oculus_rift/rift.c \
-	drv_oculus_rift/packet.c \
 	drv_dummy/dummy.c \
 	omath.c \
 	platform-posix.c \
 	fusion.c
 
-libopenhmd_la_LDFLAGS = $(hidapi_LIBS) -no-undefined -version-info 0:0:0 $(EXTRA_LD_FLAGS)
-libopenhmd_la_CPPFLAGS = -fPIC -I$(top_srcdir)/include $(hidapi_CFLAGS) -Wall 
+SUBDIRS =
+
+libopenhmd_la_LDFLAGS = -no-undefined -version-info 0:0:0
+libopenhmd_la_CPPFLAGS = -fPIC -I$(top_srcdir)/include -Wall 
+
+if BUILD_DRIVER_OCULUS_RIFT
+
+libopenhmd_la_SOURCES += \
+	drv_oculus_rift/rift.c \
+	drv_oculus_rift/packet.c
+
+libopenhmd_la_CPPFLAGS += $(hidapi_CFLAGS) -DDRIVER_OCULUS_RIFT
+libopenhmd_la_LDFLAGS += $(hidapi_LIBS)
+
+endif
+
+libopenhmd_la_LDFLAGS += $(EXTRA_LD_FLAGS)

+ 2 - 0
src/openhmd.c

@@ -21,7 +21,9 @@ ohmd_context* OHMD_APIENTRY ohmd_ctx_create()
 		return NULL;
 	}
 
+#if DRIVER_OCULUS_RIFT
 	ctx->drivers[ctx->num_drivers++] = ohmd_create_oculus_rift_drv(ctx);
+#endif
 
 	// add dummy driver last to make it the lowest priority
 	ctx->drivers[ctx->num_drivers++] = ohmd_create_dummy_drv(ctx);