SDL: autotools: improved detection of windows.gaming.input.h

From 0673e448f0f302722b12d3ad03c8534d1fab4a6a Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Mon, 20 Dec 2021 01:03:56 +0300
Subject: [PATCH] autotools: improved detection of windows.gaming.input.h

similar to cmake commit 83583dc49d
---
 configure    | 26 +++++++++++++++++++++++---
 configure.ac |  9 ++++++++-
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index b059a49250d..ebf27308411 100755
--- a/configure
+++ b/configure
@@ -24861,11 +24861,31 @@ $as_echo "#define HAVE_XINPUT_STATE_EX 1" >>confdefs.h
         fi
     fi
 
-    ac_fn_c_check_header_mongrel "$LINENO" "windows.gaming.input.h" "ac_cv_header_windows_gaming_input_h" "$ac_includes_default"
-if test "x$ac_cv_header_windows_gaming_input_h" = xyes; then :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.gaming.input.h" >&5
+$as_echo_n "checking for windows.gaming.input.h... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#define COBJMACROS
+#include <windows.gaming.input.h>
+__x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
   have_wgi=yes
+else
+  have_wgi=no
 fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_wgi" >&5
+$as_echo "$have_wgi" >&6; }
 
     if test x$have_wgi = xyes; then
 
diff --git a/configure.ac b/configure.ac
index 623d5f1639f..88039b10404 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3271,7 +3271,14 @@ XINPUT_STATE_EX s1;
         fi
     fi
 
-    AC_CHECK_HEADER(windows.gaming.input.h, have_wgi=yes)
+    AC_MSG_CHECKING(for windows.gaming.input.h)
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#define COBJMACROS
+#include <windows.gaming.input.h>
+__x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2;
+        ]],[])], [have_wgi=yes],[have_wgi=no])
+    AC_MSG_RESULT($have_wgi)
+
     if test x$have_wgi = xyes; then
         AC_DEFINE(HAVE_WINDOWS_GAMING_INPUT_H, 1, [ ])
     fi