25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

138 satır
4.7 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_SDL_SDL_H -- whether to include <SDL/SDL.h>
  12. dnl HAVE_SDL_H -- whether to include <SDL.h>
  13. dnl Generated automake conditionals:
  14. dnl USE_SDL -- whether SDL or SDL2 were found at all
  15. dnl USE_SDL_IMAGE -- whether SDL_image was found
  16. dnl USE_SDL_MIXER -- whether SDL_mixer was found
  17. dnl Generated shell variables:
  18. dnl SDL_CFLAGS -- flags for SDL compilation
  19. dnl SDL_LIBS -- flags for SDL linking
  20. ac_cv_my_have_sdl="no"
  21. ac_cv_my_have_sdl2="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. if test "x${ac_cv_my_have_sdl}" = xno; then
  26. PKG_CHECK_MODULES(SDL2, sdl2,
  27. [ac_cv_my_have_sdl="yes"
  28. ac_cv_my_have_sdl2="yes"
  29. PKG_CHECK_MODULES(SDL2MIXER, SDL2_mixer,
  30. [ac_cv_my_have_sdl_mixer="yes"
  31. AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
  32. [:])
  33. PKG_CHECK_MODULES(SDL2IMAGE, SDL2_image,
  34. [ac_cv_my_have_sdl_image="yes"
  35. AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
  36. [:])
  37. SDL_CFLAGS="${SDL2_CFLAGS} ${SDL2MIXER_CFLAGS} ${SDL2IMAGE_CFLAGS}"
  38. SDL_LIBS="${SDL2_LIBS} ${SDL2MIXER_LIBS} ${SDL2IMAGE_LIBS}"
  39. AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
  40. [:])
  41. fi
  42. dnl Then, try the proper pkg-config check for SDL 1.x
  43. if test "x${ac_cv_my_have_sdl}" = xno; then
  44. PKG_CHECK_MODULES(SDL, sdl,
  45. [ac_cv_my_have_sdl="yes"
  46. PKG_CHECK_MODULES(SDLMIXER, SDL_mixer,
  47. [ac_cv_my_have_sdl_mixer="yes"
  48. AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
  49. [:])
  50. PKG_CHECK_MODULES(SDLIMAGE, SDL_image,
  51. [ac_cv_my_have_sdl_image="yes"
  52. AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
  53. [:])
  54. SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
  55. SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
  56. AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
  57. [:])
  58. fi
  59. dnl Then the old sdl-config method
  60. if test "x${cross_compiling}" != xyes -a "x${ac_cv_my_have_sdl}" = xno; then
  61. AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
  62. if test "${SDL_CONFIG}" != "no" && "${SDL_CONFIG}" --version >/dev/null; then
  63. ac_cv_my_have_sdl="yes"
  64. SDL_CFLAGS="${SDL_CFLAGS} `${SDL_CONFIG} --cflags`"
  65. SDL_LIBS="${SDL_LIBS} `${SDL_CONFIG} --libs`"
  66. AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)
  67. fi
  68. fi
  69. dnl Maybe all this has failed, try direct inclusion instead
  70. if test "x${ac_cv_my_have_sdl}" = xno; then
  71. save_CPPFLAGS="${CPPFLAGS}"
  72. save_LIBS="${LIBS}"
  73. CPPFLAGS="${CPPFLAGS} ${SDL_CFLAGS}"
  74. LIBS="${LIBS} ${SDL_LIBS}"
  75. AC_CHECK_HEADERS(SDL.h SDL/SDL.h, [ac_cv_my_have_sdl="yes"])
  76. if test "x${ac_cv_my_have_sdl}" != xno; then
  77. AC_CHECK_HEADERS(SDL_mixer.h SDL/SDL_mixer.h, [ac_cv_my_have_sdl_mixer="yes"])
  78. AC_CHECK_HEADERS(SDL_image.h SDL/SDL_image.h, [ac_cv_my_have_sdl_image="yes"])
  79. AC_CHECK_LIB(SDL, main,
  80. [SDL_LIBS="${SDL_LIBS} -lSDL"],
  81. [AC_CHECK_LIB(SDL2, main,
  82. [SDL_LIBS="${SDL_LIBS} -lSDL2"
  83. ac_cv_my_have_sdl2="yes"],
  84. [ac_cv_my_have_sdl="no"])])
  85. AC_CHECK_LIB(SDLmain, main,
  86. [SDL_LIBS="${SDL_LIBS} -lSDLmain -lSDL"])
  87. AC_CHECK_LIB(SDL2main, main,
  88. [SDL_LIBS="${SDL_LIBS} -lSDL2main -lSDL2"])
  89. AC_CHECK_LIB(SDL_mixer, main,
  90. [SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL_mixer"],
  91. [ac_cv_my_have_sdl_mixer="no"])
  92. AC_CHECK_LIB(SDL_image, main,
  93. [SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL_image"],
  94. [ac_cv_my_have_sdl_image="no"])
  95. fi
  96. SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
  97. SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
  98. CPPFLAGS="${save_CPPFLAGS}"
  99. LIBS="${save_LIBS}"
  100. fi
  101. if test "x${ac_cv_my_have_sdl}" = xno; then
  102. AC_MSG_WARN([SDL not found])
  103. else
  104. AC_DEFINE(USE_SDL, 1, Define to 1 to use SDL)
  105. fi
  106. AM_CONDITIONAL(USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes)
  107. if test "x${ac_cv_my_have_sdl2}" != xno; then
  108. AC_DEFINE(USE_SDL2, 1, Define to 1 to use SDL)
  109. fi
  110. AM_CONDITIONAL(USE_SDL2, test "x${ac_cv_my_have_sdl2}" = xyes)
  111. if test "x${ac_cv_my_have_sdl_mixer}" = xno; then
  112. AC_MSG_WARN([SDL_mixer not found])
  113. else
  114. AC_DEFINE(USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer)
  115. fi
  116. AM_CONDITIONAL(USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes)
  117. if test "x${ac_cv_my_have_sdl_image}" = xno; then
  118. AC_MSG_WARN([SDL_image not found])
  119. else
  120. AC_DEFINE(USE_SDL_IMAGE, 1, Define to 1 to use SDL_image)
  121. fi
  122. AM_CONDITIONAL(USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes)
  123. ])# LOL_CHECK_SDL