configure.ac 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. name='openhmd'
  2. version='0.0.1'
  3. library_interface_version='0:0:0'
  4. email='noname@nurd.se'
  5. AC_PREREQ([2.13])
  6. AC_INIT([openhmd], [0.0.1], [noname@nurd.se])
  7. AM_INIT_AUTOMAKE([foreign -Wall])
  8. m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
  9. LT_INIT
  10. AC_CANONICAL_HOST
  11. # 0.24 automatically calls AC_SUBST() in PKG_CHECK_MODULES()
  12. PKG_PROG_PKG_CONFIG([0.24])
  13. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
  14. hidapi="hidapi"
  15. AC_SUBST(PKG_CONFIG_EXTRA_PATH, "")
  16. AC_SUBST(EXTRA_LD_FLAGS, "")
  17. AC_MSG_CHECKING([operating system])
  18. AS_CASE(["$host"],
  19. [*-linux*],
  20. [AC_MSG_RESULT([$host (Linux)])
  21. hidapi="hidapi-libusb"
  22. #link with realtime lib on linux for clock_gettime, and libm for math functions such as sincosf
  23. AC_SUBST(EXTRA_LD_FLAGS, "-lrt -lpthread -lm")],
  24. [*-freebsd*],
  25. [AC_SUBST(PKG_CONFIG_EXTRA_PATH, "libdata/")
  26. AC_SUBST(EXTRA_LD_FLAGS, "-lthr")],
  27. [*-kfreebsd*],
  28. [AC_SUBST(EXTRA_LD_FLAGS, "-lpthread")])
  29. # Oculus Rift Driver
  30. AC_ARG_ENABLE([driver-oculus-rift],
  31. [AS_HELP_STRING([--disable-driver-oculus-rift],
  32. [disable building of Oculus Rift driver [default=yes]])],
  33. [driver_oculus_rift_enabled=$enableval],
  34. [driver_oculus_rift_enabled='yes'])
  35. AM_CONDITIONAL([BUILD_DRIVER_OCULUS_RIFT], [test "x$driver_oculus_rift_enabled" != "xno"])
  36. # HTC Vive driver
  37. AC_ARG_ENABLE([driver-htc-vive],
  38. [AS_HELP_STRING([--disable-driver-htc-vive],
  39. [disable building of HTC Vive driver [default=yes]])],
  40. [driver_htc_vive_enabled=$enableval],
  41. [driver_htc_vive_enabled='yes'])
  42. AM_CONDITIONAL([BUILD_DRIVER_HTC_VIVE], [test "x$driver_oculus_rift_enabled" != "xno"])
  43. # Deepoon Driver
  44. AC_ARG_ENABLE([driver-deepoon],
  45. [AS_HELP_STRING([--disable-driver-deepoon],
  46. [disable building of Deepoon driver [default=yes]])],
  47. [driver_deepoon_enabled=$enableval],
  48. [driver_deepoon_enabled='yes'])
  49. AM_CONDITIONAL([BUILD_DRIVER_DEEPOON], [test "x$driver_deepoon_enabled" != "xno"])
  50. # Sony PSVR Driver
  51. AC_ARG_ENABLE([driver-psvr],
  52. [AS_HELP_STRING([--disable-driver-psvr],
  53. [disable building of Sony PSVR driver [default=yes]])],
  54. [driver_psvr_enabled=$enableval],
  55. [driver_psvr_enabled='yes'])
  56. AM_CONDITIONAL([BUILD_DRIVER_PSVR], [test "x$driver_psvr_enabled" != "xno"])
  57. # External Driver
  58. AC_ARG_ENABLE([driver-external],
  59. [AS_HELP_STRING([--disable-driver-external],
  60. [disable building of External driver [default=yes]])],
  61. [driver_external_enabled=$enableval],
  62. [driver_external_enabled='yes'])
  63. AM_CONDITIONAL([BUILD_DRIVER_EXTERNAL], [test "x$driver_external_enabled" != "xno"])
  64. # Android Driver
  65. AC_ARG_ENABLE([driver-android],
  66. [AS_HELP_STRING([--enable-driver-android],
  67. [enable building of Android driver [default=no]])],
  68. [driver_android_enabled=$enableval],
  69. [driver_android_enabled='no'])
  70. AM_CONDITIONAL([BUILD_DRIVER_ANDROID], [test "x$driver_android_enabled" != "xno"])
  71. # Libs required by Oculus Rift Driver
  72. AS_IF([test "x$driver_oculus_rift_enabled" != "xno"],
  73. [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)])
  74. # Libs required by HTC Vive Driver
  75. AS_IF([test "x$driver_htc_vive_enabled" != "xno"],
  76. [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)])
  77. # Libs required by Depoon Driver
  78. AS_IF([test "x$driver_deepoon_enabled" != "xno"],
  79. [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)])
  80. # Libs required by Sony PSVR Driver
  81. AS_IF([test "x$driver_psvr_enabled" != "xno"],
  82. [PKG_CHECK_MODULES([hidapi], [$hidapi] >= 0.0.5)])
  83. # Do we build OpenGL example?
  84. AC_ARG_ENABLE([openglexample],
  85. [AS_HELP_STRING([--enable-openglexample],
  86. [enable building of OpenGL example [default=no]])],
  87. [openglexample_enabled=$enableval],
  88. [openglexample_enabled='no'])
  89. AM_CONDITIONAL([BUILD_OPENGL_EXAMPLE], [test "x$openglexample_enabled" != "xno"])
  90. # Libs required by OpenGL test
  91. AS_IF([test "x$openglexample_enabled" != "xno"], [
  92. PKG_CHECK_MODULES([sdl2], [sdl2])
  93. # Try to find OpenGL with pkg-config
  94. PKG_CHECK_MODULES([GL], [gl], [],
  95. # and try to find which lib to link to, -lGL first
  96. [AC_CHECK_LIB(GL, glBegin, [GL_LIBS=-lGL],
  97. # if that fails, try -lopengl32 (win32)
  98. [AC_CHECK_LIB(opengl32, main, [GL_LIBS=-lopengl32],
  99. AC_MSG_ERROR([GL not found])
  100. )]
  101. )]
  102. )
  103. AC_SUBST(GL_LIBS)
  104. # Try to find GLEW with pkg-config
  105. PKG_CHECK_MODULES([GLEW], [glew], [],
  106. # if that fails, check if there's a glew header
  107. [AC_CHECK_HEADER([GL/glew.h], [GLEW_LIBS=-lGLEW; GLEW_CFLAGS=-DGLEW_STATIC], AC_MSG_ERROR([GLEW not found]))]
  108. )
  109. AC_SUBST(GLEW_LIBS)
  110. AC_SUBST(GLEW_CFLAGS)
  111. ])
  112. AC_PROG_CC
  113. AC_PROG_CC_C99
  114. AC_CONFIG_HEADERS([config.h])
  115. AC_CONFIG_FILES([Makefile src/Makefile tests/Makefile tests/unittests/Makefile examples/Makefile examples/opengl/Makefile examples/simple/Makefile])
  116. AC_OUTPUT