Stian Skjelstad
check if $sdl_framework is set, before checking if directory exists
Patch that was merged here https://hg.libsdl.org/SDL/rev/9befd0acb9ef made it impossible for the SDL2 detection to fail, since one of the if statements fails to check if a variable is set or not.
if test -d $sdl_framework; then
can evaluate to true in some shells. I guess it falls into undefined behaviour when looking at the POSIX standard.
neoaggelos
It is common for Mac OS X to use the SDL2.framework instead of the classic UNIX dynamic lib.
Therefore, it makes sense for AM_PATH_SDL2() to be able to locate it. Attached is a patched sdl2.m4 (updated for that purpose).
Changes:
* look for SDL2.framework ONLY if pkg-config and sdl2-config tests failed (this is to ensure compatibility with the old behaviour)
* adds option ('--disable-sdlframework') to retreat to the old behaviour
* adds variable 'SDL2_FRAMEWORK' for the user to specify the exact path to SDL2.framework (e.g. if it is installed in a non-standard location)
Open to suggestions for further improvements
Edgar Simo
So basically the issue is that:
AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH])
in sdl2.m4 shares the same variable (SDL_CONFIG) as sdl.m4:
AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
What happens is if you run the AM_PATH_SDL2 and then AM_PATH_SDL to say fall back on SDL if SDL2 isn't found, the AM_PATH_PROG command gets cached (ac_cv_path_SDL_CONFIG) so that unless you unset this cache variable, the result for AM_PATH_SDL will be EXACTLY the same as for AM_PATH_SDL2.
To fix I would recommend renaming SDL_CONFIG to SDL2_CONFIG in sdl2.m4, replacing all instances so it won't cache to the same variable.