1name='openhmd' 2version='0.3.0' 3email='noname@nurd.se' 4 5AC_PREREQ([2.13]) 6AC_INIT([openhmd], [0.3.0], [noname@nurd.de]) 7AM_INIT_AUTOMAKE([foreign -Wall]) 8m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 9LT_INIT 10AC_CANONICAL_HOST 11 12# Just before release, the LT_VERSION string should be modified. See 13# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html 14# for details how to increment the current:revision:age fields. 15AC_SUBST([LT_VERSION], [1:0:1]) 16 17# 0.24 automatically calls AC_SUBST() in PKG_CHECK_MODULES() 18PKG_PROG_PKG_CONFIG([0.24]) 19 20m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 21 22hidapi="hidapi" 23deps_ld_flags="-lhidapi" 24AC_SUBST(hidapi) 25AC_SUBST(deps_ld_flags) 26 27AC_SUBST(PKG_CONFIG_EXTRA_PATH, "") 28AC_SUBST(EXTRA_LD_FLAGS, "") 29 30AC_MSG_CHECKING([operating system]) 31AS_CASE(["$host"], 32 [*-androideabi], 33 [hidapi="" 34 deps_ld_flags="-landroid" 35 AC_SUBST(EXTRA_LD_FLAGS, "-lm")], 36 [*-linux*], 37 [AC_MSG_RESULT([$host (Linux)]) 38 hidapi="hidapi-libusb" 39 deps_ld_flags="-lhidapi-libusb" 40 41 #link with realtime lib on linux for clock_gettime, and libm for math functions such as sincosf 42 AC_SUBST(EXTRA_LD_FLAGS, "-lrt -lpthread -lm")], 43 [*-freebsd*], 44 [AC_SUBST(PKG_CONFIG_EXTRA_PATH, "libdata/") 45 AC_SUBST(EXTRA_LD_FLAGS, "-lthr")], 46 [*-kfreebsd*], 47 [AC_SUBST(EXTRA_LD_FLAGS, "-lpthread")] 48 [*-darwin*], 49 [AC_MSG_RESULT([$host (Mac OS X)])]) 50 51# Oculus Rift Driver 52AC_ARG_ENABLE([driver-oculus-rift], 53 [AS_HELP_STRING([--disable-driver-oculus-rift], 54 [disable building of Oculus Rift driver [default=yes]])], 55 [driver_oculus_rift_enabled=$enableval], 56 [driver_oculus_rift_enabled='yes']) 57 58AM_CONDITIONAL([BUILD_DRIVER_OCULUS_RIFT], [test "x$driver_oculus_rift_enabled" != "xno"]) 59 60# HTC Vive driver 61AC_ARG_ENABLE([driver-htc-vive], 62 [AS_HELP_STRING([--disable-driver-htc-vive], 63 [disable building of HTC Vive driver [default=yes]])], 64 [driver_htc_vive_enabled=$enableval], 65 [driver_htc_vive_enabled='yes']) 66 67AM_CONDITIONAL([BUILD_DRIVER_HTC_VIVE], [test "x$driver_oculus_rift_enabled" != "xno"]) 68 69# Deepoon Driver 70AC_ARG_ENABLE([driver-deepoon], 71 [AS_HELP_STRING([--disable-driver-deepoon], 72 [disable building of Deepoon driver [default=yes]])], 73 [driver_deepoon_enabled=$enableval], 74 [driver_deepoon_enabled='yes']) 75 76AM_CONDITIONAL([BUILD_DRIVER_DEEPOON], [test "x$driver_deepoon_enabled" != "xno"]) 77 78# Windows Mixed Reality Driver 79AC_ARG_ENABLE([driver-wmr], 80 [AS_HELP_STRING([--disable-driver-wmr], 81 [disable building of Windows Mixed Reality driver [default=yes]])], 82 [driver_wmr_enabled=$enableval], 83 [driver_wmr_enabled='yes']) 84 85AM_CONDITIONAL([BUILD_DRIVER_WMR], [test "x$driver_wmr_enabled" != "xno"]) 86 87# Sony PSVR Driver, disabled for 0.3 88AC_ARG_ENABLE([driver-psvr], 89 [AS_HELP_STRING([--disable-driver-psvr], 90 [disable building of Sony PSVR driver [default=no]])], 91 [driver_psvr_enabled=$enableval], 92 [driver_psvr_enabled='no']) 93 94AM_CONDITIONAL([BUILD_DRIVER_PSVR], [test "x$driver_psvr_enabled" != "xno"]) 95 96# NOLO 97AC_ARG_ENABLE([driver-nolo], 98 [AS_HELP_STRING([--disable-driver-nolo], 99 [disable building of NOLO VR driver [default=yes]])], 100 [driver_nolo_enabled=$enableval], 101 [driver_nolo_enabled='yes']) 102 103AM_CONDITIONAL([BUILD_DRIVER_NOLO], [test "x$driver_nolo_enabled" != "xno"]) 104 105# 3Glasses HMD driver 106AC_ARG_ENABLE([driver-xgvr], 107 [AS_HELP_STRING([--disable-driver-xgvr], 108 [disable building of 3glasses driver [default=yes]])], 109 [driver_xgvr_enabled=$enableval], 110 [driver_xgvr_enabled='yes']) 111 112AM_CONDITIONAL([BUILD_DRIVER_XGVR], [test "x$driver_xgvr_enabled" != "xno"]) 113 114# External Driver 115AC_ARG_ENABLE([driver-external], 116 [AS_HELP_STRING([--disable-driver-external], 117 [disable building of External driver [default=yes]])], 118 [driver_external_enabled=$enableval], 119 [driver_external_enabled='yes']) 120 121AM_CONDITIONAL([BUILD_DRIVER_EXTERNAL], [test "x$driver_external_enabled" != "xno"]) 122 123# Android Driver 124AC_ARG_ENABLE([driver-android], 125 [AS_HELP_STRING([--enable-driver-android], 126 [enable building of Android driver [default=no]])], 127 [driver_android_enabled=$enableval], 128 [driver_android_enabled='no']) 129 130AM_CONDITIONAL([BUILD_DRIVER_ANDROID], [test "x$driver_android_enabled" != "xno"]) 131 132# Libs required by Oculus Rift Driver 133AS_IF([test "x$driver_oculus_rift_enabled" != "xno"], 134 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 135 136# Libs required by HTC Vive Driver 137AS_IF([test "x$driver_htc_vive_enabled" != "xno"], 138 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 139 140# Libs required by Depoon Driver 141AS_IF([test "x$driver_deepoon_enabled" != "xno"], 142 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 143 144# Libs required by Sony PSVR Driver 145AS_IF([test "x$driver_psvr_enabled" != "xno"], 146 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 147 148# Libs required by NOLO VR Driver 149AS_IF([test "x$driver_nolo_enabled" != "xno"], 150 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 151 152# Libs required by 3Glasses HMD Driver 153AS_IF([test "x$driver_xgvr_enabled" != "xno"], 154 [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)]) 155 156# Do we build OpenGL example? 157AC_ARG_ENABLE([openglexample], 158 [AS_HELP_STRING([--enable-openglexample], 159 [enable building of OpenGL example [default=no]])], 160 [openglexample_enabled=$enableval], 161 [openglexample_enabled='no']) 162 163AM_CONDITIONAL([BUILD_OPENGL_EXAMPLE], [test "x$openglexample_enabled" != "xno"]) 164 165# Libs required by OpenGL test 166AS_IF([test "x$openglexample_enabled" != "xno"], [ 167 PKG_CHECK_MODULES([sdl2], [sdl2]) 168 169 # Try to find OpenGL with pkg-config 170 PKG_CHECK_MODULES([GL], [gl], [], 171 # and try to find which lib to link to, -lGL first 172 [AC_CHECK_LIB(GL, glBegin, [GL_LIBS=-lGL], 173 174 # if that fails, try -lopengl32 (win32) 175 [AC_CHECK_LIB(opengl32, main, [GL_LIBS=-lopengl32], 176 [AC_CHECK_HEADERS([OpenGL/gl.h], [GL_LIBS="-framework OpenGL"], 177 AC_MSG_ERROR([GL not found]) 178 )] 179 )] 180 )] 181 ) 182 183 AC_SUBST(GL_LIBS) 184 185 # Try to find GLEW with pkg-config 186 PKG_CHECK_MODULES([GLEW], [glew], [], 187 # if that fails, check if there's a glew header 188 [AC_CHECK_HEADER([GL/glew.h], [GLEW_LIBS=-lGLEW; GLEW_CFLAGS=-DGLEW_STATIC], AC_MSG_ERROR([GLEW not found]))] 189 ) 190 191 AC_SUBST(GLEW_LIBS) 192 AC_SUBST(GLEW_CFLAGS) 193]) 194 195AC_PROG_CC 196AC_PROG_CC_C99 197 198AC_CONFIG_HEADERS([config.h]) 199AC_CONFIG_FILES([Makefile src/Makefile tests/Makefile tests/unittests/Makefile examples/Makefile examples/opengl/Makefile examples/simple/Makefile pkg-config/openhmd.pc]) 200AC_OUTPUT 201