configure.ac 6.5 KB

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