You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

127 lines
4.5 KiB

  1. # LOL_CHECK_SDL()
  2. # ---------------
  3. AC_DEFUN([LOL_CHECK_SDL],
  4. [
  5. dnl Find which version of SDL to use (always required on Linux or Win32)
  6. dnl
  7. dnl Defined C/C++ macros:
  8. dnl USE_SDL -- whether SDL or SDL2 were found at all
  9. dnl USE_SDL_IMAGE -- whether SDL_image was found
  10. dnl USE_SDL_MIXER -- whether SDL_mixer was found
  11. dnl HAVE_SDL2_SDL_H -- whether to include <SDL2/SDL.h>
  12. dnl HAVE_SDL_SDL_H -- whether to include <SDL/SDL.h>
  13. dnl HAVE_SDL_H -- whether to include <SDL.h>
  14. dnl Generated automake conditionals:
  15. dnl USE_SDL -- whether SDL or SDL2 were found at all (conditional)
  16. dnl USE_SDL_IMAGE -- whether SDL_image was found (conditional)
  17. dnl USE_SDL_MIXER -- whether SDL_mixer was found (conditional)
  18. dnl Generated shell variables:
  19. dnl SDL_CFLAGS -- flags for SDL compilation
  20. dnl SDL_LIBS -- flags for SDL linking
  21. ac_cv_my_have_sdl="no"
  22. ac_cv_my_have_sdl_image="no"
  23. ac_cv_my_have_sdl_mixer="no"
  24. dnl First, try the proper pkg-config check for SDL2
  25. dnl if test "x${ac_cv_my_have_sdl}" = xno; then
  26. dnl PKG_CHECK_MODULES(SDL2, sdl2,
  27. dnl [ac_cv_my_have_sdl="yes"
  28. dnl PKG_CHECK_MODULES(SDL2MIXER, SDL2_mixer,
  29. dnl [ac_cv_my_have_sdl_mixer="yes"
  30. dnl AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
  31. dnl [:])
  32. dnl PKG_CHECK_MODULES(SDL2IMAGE, SDL2_image,
  33. dnl [ac_cv_my_have_sdl_image="yes"
  34. dnl AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
  35. dnl [:])
  36. dnl SDL_CFLAGS="${SDL2_CFLAGS} ${SDL2MIXER_CFLAGS} ${SDL2IMAGE_CFLAGS}"
  37. dnl SDL_LIBS="${SDL2_LIBS} ${SDL2MIXER_LIBS} ${SDL2IMAGE_LIBS}"
  38. dnl AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
  39. dnl [:])
  40. dnl fi
  41. dnl Then, try the proper pkg-config check for SDL 1.x
  42. if test "x${ac_cv_my_have_sdl}" = xno; then
  43. PKG_CHECK_MODULES(SDL, sdl,
  44. [ac_cv_my_have_sdl="yes"
  45. PKG_CHECK_MODULES(SDLMIXER, SDL_mixer,
  46. [ac_cv_my_have_sdl_mixer="yes"
  47. AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
  48. [:])
  49. PKG_CHECK_MODULES(SDLIMAGE, SDL_image,
  50. [ac_cv_my_have_sdl_image="yes"
  51. AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
  52. [:])
  53. SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
  54. SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
  55. AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
  56. [:])
  57. fi
  58. dnl Then the old sdl-config method
  59. if test "x${cross_compiling}" != xyes -a "x${ac_cv_my_have_sdl}" = xno; then
  60. AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
  61. if test "${SDL_CONFIG}" != "no"; then
  62. ac_cv_my_have_sdl="yes"
  63. SDL_CFLAGS="${SDL_CFLAGS} `${SDL_CONFIG} --cflags`"
  64. SDL_LIBS="${SDL_LIBS} `${SDL_CONFIG} --libs`"
  65. AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h),
  66. fi
  67. fi
  68. dnl Maybe all this has failed, try direct inclusion instead
  69. if test "x${ac_cv_my_have_sdl}" = xno; then
  70. save_CPPFLAGS="${CPPFLAGS}"
  71. save_LIBS="${LIBS}"
  72. CPPFLAGS="${CPPFLAGS} ${SDL_CFLAGS}"
  73. LIBS="${LIBS} ${SDL_LIBS}"
  74. AC_CHECK_HEADERS(SDL.h SDL/SDL.h, [ac_cv_my_have_sdl="yes"])
  75. if test "x${ac_cv_my_have_sdl}" != xno; then
  76. AC_CHECK_HEADERS(SDL_mixer.h SDL/SDL_mixer.h, [ac_cv_my_have_sdl_mixer="yes"])
  77. AC_CHECK_HEADERS(SDL_image.h SDL/SDL_image.h, [ac_cv_my_have_sdl_image="yes"])
  78. AC_CHECK_LIB(SDL, main,
  79. [SDL_LIBS="${SDL_LIBS} -lSDL"],
  80. [ac_cv_my_have_sdl="no"])
  81. AC_CHECK_LIB(SDLmain, main,
  82. [SDL_LIBS="${SDL_LIBS} -lSDLmain -lSDL"])
  83. AC_CHECK_LIB(SDL_mixer, main,
  84. [SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL_mixer"],
  85. [ac_cv_my_have_sdl_mixer="no"])
  86. AC_CHECK_LIB(SDL_image, main,
  87. [SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL_image"],
  88. [ac_cv_my_have_sdl_image="no"])
  89. fi
  90. SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
  91. SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
  92. CPPFLAGS="${save_CPPFLAGS}"
  93. LIBS="${save_LIBS}"
  94. fi
  95. if test "x${ac_cv_my_have_sdl}" = xno; then
  96. AC_MSG_WARN([SDL not found])
  97. else
  98. AC_DEFINE(USE_SDL, 1, Define to 1 to use SDL)
  99. fi
  100. AM_CONDITIONAL(USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes)
  101. if test "x${ac_cv_my_have_sdl_mixer}" = xno; then
  102. AC_MSG_WARN([SDL_mixer not found])
  103. else
  104. AC_DEFINE(USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer)
  105. fi
  106. AM_CONDITIONAL(USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes)
  107. if test "x${ac_cv_my_have_sdl_image}" = xno; then
  108. AC_MSG_WARN([SDL_image not found])
  109. else
  110. AC_DEFINE(USE_SDL_IMAGE, 1, Define to 1 to use SDL_image)
  111. fi
  112. AM_CONDITIONAL(USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes)
  113. ])# LOL_CHECK_SDL