|
- dnl
- dnl Lol Engine
- dnl
- dnl Copyright © 2010—2016 Sam Hocevar <sam@hocevar.net>
- dnl
- dnl Lol Engine is free software. It comes without any warranty, to
- dnl the extent permitted by applicable law. You can redistribute it
- dnl and/or modify it under the terms of the Do What the Fuck You Want
- dnl to Public License, Version 2, as published by the WTFPL Task Force.
- dnl See http://www.wtfpl.net/ for more details.
- dnl
-
-
- # LOL_AC_CHECK_SDL()
- # ------------------
- AC_DEFUN([LOL_AC_CHECK_SDL],
- [
- dnl Find which version of SDL to use (always required on Linux or Win32)
- dnl
- dnl Defined C/C++ macros:
- dnl LOL_USE_SDL -- whether SDL v2 was found
- dnl LOL_USE_OLD_SDL -- whether SDL v1 was found
- dnl LOL_USE_SDL_IMAGE -- whether SDL_image (v1 or v2) was found
- dnl LOL_USE_SDL_MIXER -- whether SDL_mixer (v1 or v2) was found
- dnl HAVE_SDL_H -- whether to include <SDL.h>
- dnl HAVE_SDL_SDL_H -- whether to include <SDL/SDL.h>
- dnl HAVE_SDL2_SDL_H -- whether to include <SDL2/SDL.h>
- dnl Generated automake conditionals:
- dnl LOL_USE_SDL -- whether SDL v2 was found
- dnl LOL_USE_OLD_SDL -- whether SDL v1 was found
- dnl LOL_USE_SDL_IMAGE -- whether SDL_image was found
- dnl LOL_USE_SDL_MIXER -- whether SDL_mixer was found
- dnl Generated shell variables:
- dnl SDL_CFLAGS -- flags for SDL compilation
- dnl SDL_LIBS -- flags for SDL linking
-
- ac_cv_my_have_sdl="no"
- ac_cv_my_have_old_sdl="no"
- ac_cv_my_have_sdl_image="no"
- ac_cv_my_have_sdl_mixer="no"
-
-
- dnl First, try the proper pkg-config check for SDL2
-
- if test "x${ac_cv_my_have_sdl}" = xno; then
- PKG_CHECK_MODULES(SDL2, sdl2,
- [ac_cv_my_have_sdl="yes"
- PKG_CHECK_MODULES(SDL2MIXER, SDL2_mixer,
- [ac_cv_my_have_sdl_mixer="yes"
- AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
- [:])
- PKG_CHECK_MODULES(SDL2IMAGE, SDL2_image,
- [ac_cv_my_have_sdl_image="yes"
- AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
- [:])
- SDL_CFLAGS="${SDL2_CFLAGS} ${SDL2MIXER_CFLAGS} ${SDL2IMAGE_CFLAGS}"
- SDL_LIBS="${SDL2_LIBS} ${SDL2MIXER_LIBS} ${SDL2IMAGE_LIBS}"
- AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
- [:])
- fi
-
-
- dnl Maybe all this has failed, try direct inclusion instead
-
- if test "x${ac_cv_my_have_sdl}" = xno; then
- save_CPPFLAGS="${CPPFLAGS}"
- save_LIBS="${LIBS}"
- CPPFLAGS="${CPPFLAGS} ${SDL_CFLAGS}"
- LIBS="${LIBS} ${SDL_LIBS}"
- AC_CHECK_HEADERS(SDL.h SDL/SDL.h SDL2/SDL.h,
- [ac_cv_my_have_sdl="yes"])
- if test "x${ac_cv_my_have_sdl}" != xno; then
- AC_CHECK_HEADERS(SDL_mixer.h SDL/SDL_mixer.h SDL2/SDL_mixer.h,
- [ac_cv_my_have_sdl_mixer="yes"])
- AC_CHECK_HEADERS(SDL_image.h SDL/SDL_image.h SDL2/SDL_image.h,
- [ac_cv_my_have_sdl_image="yes"])
- AC_CHECK_LIB(SDL2, main,
- [SDL_LIBS="${SDL_LIBS} -lSDL2"],
- [ac_cv_my_have_sdl="no"])
- AC_CHECK_LIB(SDL2main, main,
- [SDL_LIBS="${SDL_LIBS} -lSDL2main -lSDL2"])
- AC_CHECK_LIB(SDL2_mixer, main,
- [SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL2_mixer"],
- [ac_cv_my_have_sdl_mixer="no"])
- AC_CHECK_LIB(SDL2_image, main,
- [SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL2_image"],
- [ac_cv_my_have_sdl_image="no"])
- SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
- SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
- fi
- CPPFLAGS="${save_CPPFLAGS}"
- LIBS="${save_LIBS}"
- fi
-
-
- dnl Then, try the proper pkg-config check for SDL 1.x
-
- if test "x${ac_cv_my_have_sdl}" = xno \
- -a "x${ac_cv_my_have_old_sdl}" = xno; then
- PKG_CHECK_MODULES(SDL, sdl,
- [ac_cv_my_have_old_sdl="yes"
- PKG_CHECK_MODULES(SDLMIXER, SDL_mixer,
- [ac_cv_my_have_sdl_mixer="yes"
- AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)],
- [:])
- PKG_CHECK_MODULES(SDLIMAGE, SDL_image,
- [ac_cv_my_have_sdl_image="yes"
- AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)],
- [:])
- SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
- SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
- AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)],
- [:])
- fi
-
-
- dnl Then the old sdl-config method
-
- if test "x${ac_cv_my_have_sdl}" = xno \
- -a "x${ac_cv_my_have_old_sdl}" = xno \
- -a "x${cross_compiling}" != xyes; then
- AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
- if test "${SDL_CONFIG}" != "no" && "${SDL_CONFIG}" --version >/dev/null; then
- ac_cv_my_have_old_sdl="yes"
- SDL_CFLAGS="${SDL_CFLAGS} `${SDL_CONFIG} --cflags`"
- SDL_LIBS="${SDL_LIBS} `${SDL_CONFIG} --libs`"
- AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)
- fi
- fi
-
-
- dnl Finally, try direct inclusion
-
- if test "x${ac_cv_my_have_sdl}" = xno \
- -a "x${ac_cv_my_have_old_sdl}" = xno; then
- save_CPPFLAGS="${CPPFLAGS}"
- save_LIBS="${LIBS}"
- CPPFLAGS="${CPPFLAGS} ${SDL_CFLAGS}"
- LIBS="${LIBS} ${SDL_LIBS}"
- AC_CHECK_HEADERS(SDL.h SDL/SDL.h, [ac_cv_my_have_old_sdl="yes"])
- if test "x${ac_cv_my_have_old_sdl}" != xno; then
- AC_CHECK_HEADERS(SDL_mixer.h SDL/SDL_mixer.h,
- [ac_cv_my_have_sdl_mixer="yes"])
- AC_CHECK_HEADERS(SDL_image.h SDL/SDL_image.h,
- [ac_cv_my_have_sdl_image="yes"])
- AC_CHECK_LIB(SDL, main,
- [SDL_LIBS="${SDL_LIBS} -lSDL"],
- [ac_cv_my_have_old_sdl="no"])
- AC_CHECK_LIB(SDLmain, main,
- [SDL_LIBS="${SDL_LIBS} -lSDLmain -lSDL"])
- AC_CHECK_LIB(SDL_mixer, main,
- [SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL_mixer"],
- [ac_cv_my_have_sdl_mixer="no"])
- AC_CHECK_LIB(SDL_image, main,
- [SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL_image"],
- [ac_cv_my_have_sdl_image="no"])
- fi
- SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}"
- SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}"
- CPPFLAGS="${save_CPPFLAGS}"
- LIBS="${save_LIBS}"
- fi
-
-
- dnl Convert all this into conditionals
-
- if test "x${ac_cv_my_have_sdl}" = xno; then
- AC_MSG_WARN([SDL v2 not found])
- else
- AC_DEFINE(LOL_USE_SDL, 1, Define to 1 to use SDL)
- fi
- AM_CONDITIONAL(LOL_USE_SDL, test "x${ac_cv_my_have_sdl}" = xyes)
-
- if test "x${ac_cv_my_have_sdl_mixer}" = xno; then
- AC_MSG_WARN([SDL_mixer not found])
- else
- AC_DEFINE(LOL_USE_SDL_MIXER, 1, Define to 1 to use SDL_mixer)
- fi
- AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "x${ac_cv_my_have_sdl_mixer}" = xyes)
-
- if test "x${ac_cv_my_have_sdl_image}" = xno; then
- AC_MSG_WARN([SDL_image not found])
- else
- AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image)
- fi
- AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "x${ac_cv_my_have_sdl_image}" = xyes)
-
- if test "x${ac_cv_my_have_old_sdl}" != xno; then
- AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL)
- fi
- AM_CONDITIONAL(LOL_USE_OLD_SDL, test "x${ac_cv_my_have_old_sdl}" = xyes)
-
- ]) # LOL_AC_CHECK_SDL
-
|