您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

133 行
4.6 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_cv_my_have_sdl="no"])
  82. AC_CHECK_LIB(SDLmain, main,
  83. [SDL_LIBS="${SDL_LIBS} -lSDLmain -lSDL"])
  84. AC_CHECK_LIB(SDL_mixer, main,
  85. [SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL_mixer"],
  86. [ac_cv_my_have_sdl_mixer="no"])
  87. AC_CHECK_LIB(SDL_image, main,
  88. [SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL_image"],
  89. [ac_cv_my_have_sdl_image="no"])
  90. fi
  91. SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
  92. SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
  93. CPPFLAGS="${save_CPPFLAGS}"
  94. LIBS="${save_LIBS}"
  95. fi
  96. if test "x${ac_cv_my_have_sdl}" = xno; then
  97. AC_MSG_WARN([SDL not found])
  98. else
  99. AC_DEFINE(USE_SDL, 1, Define to 1 to use SDL)
  100. fi
  101. AM_CONDITIONAL(USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes)
  102. if test "x${ac_cv_my_have_sdl2}" != xno; then
  103. AC_DEFINE(USE_SDL2, 1, Define to 1 to use SDL)
  104. fi
  105. AM_CONDITIONAL(USE_SDL2, test "x${ac_cv_my_have_sdl2}" = xyes)
  106. if test "x${ac_cv_my_have_sdl_mixer}" = xno; then
  107. AC_MSG_WARN([SDL_mixer not found])
  108. else
  109. AC_DEFINE(USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer)
  110. fi
  111. AM_CONDITIONAL(USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes)
  112. if test "x${ac_cv_my_have_sdl_image}" = xno; then
  113. AC_MSG_WARN([SDL_image not found])
  114. else
  115. AC_DEFINE(USE_SDL_IMAGE, 1, Define to 1 to use SDL_image)
  116. fi
  117. AM_CONDITIONAL(USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes)
  118. ])# LOL_CHECK_SDL