diff --git a/src/xrt/drivers/montrack/mt_device.c b/src/xrt/drivers/montrack/mt_device.c
index 585d329f3909cb337e5f8596814399203a71375a..84fcdfc3ceeec7c1dd7294d14a7b8faa29b4501b 100644
--- a/src/xrt/drivers/montrack/mt_device.c
+++ b/src/xrt/drivers/montrack/mt_device.c
@@ -24,12 +24,29 @@
 
 #include "optical_tracking/tracker3D_sphere_mono.h"
 
-//#IFDEF have_opencv
+#if defined(XRT_HAVE_LIBUVC) && defined(XRT_HAVE_JPEG)
+#define XRT_HAVE_UVC_FRAMESERVER
+#endif
+
+#if defined(XRT_HAVE_JPEG) && defined(__linux__)
+#define XRT_HAVE_V4L2_FRAMESERVER
+#endif
+
+#if defined(XRT_HAVE_FFMPEG)
+#define XRT_HAVE_FFMPEG_FRAMESERVER
+#endif
+
+#ifdef XRT_HAVE_OPENCV
 #include "filters/filter_opencv_kalman.h"
-//#IFDEF have_uvc
+#endif // XRT_HAVE_OPENCV
+
+#ifdef XRT_HAVE_UVC_FRAMESERVER
 #include "frameservers/uvc/uvc_frameserver.h"
-//#IFDEF have_v4l2
+#endif // XRT_HAVE_UVC_FRAMESERVER
+
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
 #include "frameservers/v4l2/v4l2_frameserver.h"
+#endif // XRT_HAVE_V4L2_FRAMESERVER
 
 
 static void
@@ -101,33 +118,38 @@ mt_device_create(char* device_name, bool log_verbose, bool log_debug)
 	mt_device_t* md = U_TYPED_CALLOC(mt_device_t);
 
 	dummy_init_mt_device(md);
+#if 0
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
+	if (strcmp(device_name, "MONO_PS3EYE") == 0) {
+		if (mt_create_mono_ps3eye(md)) {
+			return md;
+		}
+	}
+#endif // XRT_HAVE_V4L2_FRAMESERVER
 
-	/*if (strcmp(device_name, "MONO_PS3EYE") == 0) {
-	            if (mt_create_mono_ps3eye(md)) {
-	                    return md;
-	            }
-	    }
-	    if (strcmp(device_name, "MONO_LOGITECH_C270") == 0) {
-	            if (mt_create_mono_c270(md)) {
-	                    return md;
-	            }
-	    }
-	    if (strcmp(device_name, "STEREO_ELP_60FPS") == 0) {
-	            if (mt_create_stereo_elp(md)) {
-	                    return md;
-	            }
-	    }
-	    if (strcmp(device_name, "UVBI_ELP_60FPS") == 0) {
-	            if (mt_create_uvbi_elp(md)) {
-	                    return md;
-	            }
-	    }
-	    if (strcmp(device_name, "UVBI_HDK") == 0) {
-	            if (mt_create_uvbi_hdk(md)) {
-	                    return md;
-	            }
-	}*/
-
+#ifdef XRT_HAVE_UVC_FRAMESERVER
+	if (strcmp(device_name, "MONO_LOGITECH_C270") == 0) {
+		if (mt_create_mono_c270(md)) {
+			return md;
+		}
+	}
+	if (strcmp(device_name, "STEREO_ELP_60FPS") == 0) {
+		if (mt_create_stereo_elp(md)) {
+			return md;
+		}
+	}
+	if (strcmp(device_name, "UVBI_ELP_60FPS") == 0) {
+		if (mt_create_uvbi_elp(md)) {
+			return md;
+		}
+	}
+	if (strcmp(device_name, "UVBI_HDK") == 0) {
+		if (mt_create_uvbi_hdk(md)) {
+			return md;
+		}
+	}
+#endif // XRT_HAVE_UVC_FRAMESERVER
+#endif
 	if (strcmp(device_name, "STEREO_PS4_60FPS") == 0) {
 		if (mt_create_stereo_ps4(md)) {
 			return md;
@@ -137,7 +159,10 @@ mt_device_create(char* device_name, bool log_verbose, bool log_debug)
 
 	return NULL;
 }
+
 #if 0
+
+#ifdef XRT_HAVE_V4L2_FRAMESERVER
 bool
 mt_create_mono_ps3eye(mt_device_t* md)
 {
@@ -223,7 +248,9 @@ mt_create_mono_ps3eye(mt_device_t* md)
 	    md->frameservers[0], &(descriptors[source_index]));
 	return true;
 }
+#endif // XRT_HAVE_V4L2_FRAMESERVER
 
+#ifdef XRT_HAVE_UVC_FRAMESERVER
 bool
 mt_create_mono_c270(mt_device_t* md)
 {
@@ -571,7 +598,9 @@ mt_create_uvbi_hdk(mt_device_t* md)
 
 	return true;
 }
-#endif
+#endif // XRT_HAVE_UVC_FRAMESERVER
+#endif 
+
 bool
 mt_create_stereo_ps4(mt_device_t* md)
 {