Updated the generic event check to try to compile instead of just look for library runtime function (fixes compiling on older Mac OS X SDKs)
authorSam Lantinga <slouken@libsdl.org>
Wed, 18 Jul 2012 10:47:41 -0700
changeset 6362 562a9fe60603
parent 6360 efd48af40ec3
child 6363 8506dd64e859
Updated the generic event check to try to compile instead of just look for library runtime function (fixes compiling on older Mac OS X SDKs)
configure
configure.in
--- a/configure	Wed Jul 11 22:20:02 2012 -0400
+++ b/configure	Wed Jul 18 10:47:41 2012 -0700
@@ -22226,74 +22226,67 @@
             { echo "$as_me:$LINENO: result: $have_const_param_XextAddDisplay" >&5
 echo "${ECHO_T}$have_const_param_XextAddDisplay" >&6; }
 
-            { echo "$as_me:$LINENO: checking for XGetEventData in -lX11" >&5
-echo $ECHO_N "checking for XGetEventData in -lX11... $ECHO_C" >&6; }
-if test "${ac_cv_lib_X11_XGetEventData+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lX11  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XGetEventData ();
-int
-main ()
-{
-return XGetEventData ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_X11_XGetEventData=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_X11_XGetEventData=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_X11_XGetEventData" >&5
-echo "${ECHO_T}$ac_cv_lib_X11_XGetEventData" >&6; }
-if test $ac_cv_lib_X11_XGetEventData = yes; then
-
-cat >>confdefs.h <<\_ACEOF
+                        { echo "$as_me:$LINENO: checking for XGenericEvent" >&5
+echo $ECHO_N "checking for XGenericEvent... $ECHO_C" >&6; }
+            have_XGenericEvent=no
+            cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+              	#include <X11/Xlib.h>
+
+int
+main ()
+{
+
+Display *display;
+XEvent event;
+XGenericEventCookie *cookie = &event.xcookie;
+XNextEvent(display, &event);
+XGetEventData(display, cookie);
+XFreeEventData(display, cookie);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+
+                have_XGenericEvent=yes
+                cat >>confdefs.h <<\_ACEOF
 #define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1
 _ACEOF
 
-fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+            { echo "$as_me:$LINENO: result: $have_XGenericEvent" >&5
+echo "${ECHO_T}$have_XGenericEvent" >&6; }
 
             { echo "$as_me:$LINENO: checking for XkbKeycodeToKeysym in -lX11" >&5
 echo $ECHO_N "checking for XkbKeycodeToKeysym in -lX11... $ECHO_C" >&6; }
@@ -22831,6 +22824,7 @@
 int
 main ()
 {
+
 int event_type = XI_TouchBegin;
 XITouchClassInfo *t;
 Status
@@ -29773,7 +29767,7 @@
     cat >>$CONFIG_STATUS <<_ACEOF
     # First, check the format of the line:
     cat >"\$tmp/defines.sed" <<\\CEOF
-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*/b def
+/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
 /^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
 b
 :def
--- a/configure.in	Wed Jul 11 22:20:02 2012 -0400
+++ b/configure.in	Wed Jul 18 10:47:41 2012 -0700
@@ -1106,7 +1106,24 @@
             ])
             AC_MSG_RESULT($have_const_param_XextAddDisplay)
 
-            AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
+            dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
+            AC_MSG_CHECKING([for XGenericEvent])
+            have_XGenericEvent=no
+            AC_TRY_COMPILE([
+              	#include <X11/Xlib.h>
+            ],[
+Display *display;
+XEvent event;
+XGenericEventCookie *cookie = &event.xcookie;
+XNextEvent(display, &event);
+XGetEventData(display, cookie);
+XFreeEventData(display, cookie);
+            ],[
+                have_XGenericEvent=yes
+                AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS)
+            ])
+            AC_MSG_RESULT($have_XGenericEvent)
+
             AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
 
             AC_ARG_ENABLE(video-x11-xcursor,