SDL_ttf: Add -Wall to CFLAGS if available.

From 8bab4f7a262b0f8b89c0b7651f8aba81a7165e7f Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Wed, 26 Jan 2022 17:56:10 +0300
Subject: [PATCH] Add -Wall to CFLAGS if available.

---
 Makefile.in  |   1 +
 configure    | 146 ++++++++++++++++++++++++++++++++++-----------------
 configure.ac | 100 ++++++++++++++++++++++++-----------
 3 files changed, 169 insertions(+), 78 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 0d8bb01..ac8106c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -678,6 +678,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/configure b/configure
index 6bd6439..5b39876 100755
--- a/configure
+++ b/configure
@@ -16685,6 +16685,104 @@ rm -f core conftest.err conftest.$ac_objext \
 
 CFLAGS="$CFLAGS $SDL_CFLAGS"
 LIBS="$LIBS $SDL_LIBS"
+
+CheckWarnAll()
+{
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -Wall option" >&5
+$as_echo_n "checking for GCC -Wall option... " >&6; }
+    have_gcc_Wall=no
+
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$save_CFLAGS -Wall"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int x = 0;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  have_gcc_Wall=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_Wall" >&5
+$as_echo "$have_gcc_Wall" >&6; }
+    CFLAGS="$save_CFLAGS"
+
+    if test x$have_gcc_Wall = xyes; then
+        CFLAGS="$CFLAGS -Wall"
+        CXXFLAGS="$CXXFLAGS -Wall"
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for necessary GCC -Wno-multichar option" >&5
+$as_echo_n "checking for necessary GCC -Wno-multichar option... " >&6; }
+        need_gcc_Wno_multichar=no
+        case "$host" in
+            *-*-haiku*)
+                need_gcc_Wno_multichar=yes
+                ;;
+        esac
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $need_gcc_Wno_multichar" >&5
+$as_echo "$need_gcc_Wno_multichar" >&6; }
+        if test x$need_gcc_Wno_multichar = xyes; then
+            CFLAGS="$CFLAGS -Wno-multichar"
+            CXXFLAGS="$CXXFLAGS -Wno-multichar"
+        fi
+    fi
+}
+
+CheckVisibilityHidden()
+{
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -fvisibility=hidden option" >&5
+$as_echo_n "checking for GCC -fvisibility=hidden option... " >&6; }
+    have_gcc_fvisibility=no
+    case "$host" in
+    *-*-cygwin* | *-*-mingw* | *-*-os2*)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: ignored for $host_os" >&5
+$as_echo "ignored for $host_os" >&6; }
+        return
+        ;;
+    esac
+
+    visibility_CFLAGS="-fvisibility=hidden"
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+    #if !defined(__GNUC__) || __GNUC__ < 4
+    #error SDL only uses visibility attributes in GCC 4 or newer
+    #endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  have_gcc_fvisibility=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_fvisibility" >&5
+$as_echo "$have_gcc_fvisibility" >&6; }
+    CFLAGS="$save_CFLAGS"
+
+    if test x$have_gcc_fvisibility = xyes; then
+        CFLAGS="$CFLAGS $visibility_CFLAGS"
+        CXXFLAGS="$CXXFLAGS $visibility_CFLAGS"
+    fi
+}
+
+CheckWarnAll
+
+CheckVisibilityHidden
+
 TTF_LIBS=
 TTF_CPPFLAGS=
 PC_REQUIRES=
@@ -18607,52 +18705,6 @@ else
 fi
 
 
-CheckVisibilityHidden()
-{
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -fvisibility=hidden option" >&5
-$as_echo_n "checking for GCC -fvisibility=hidden option... " >&6; }
-    have_gcc_fvisibility=no
-    case "$host" in
-    *-*-cygwin* | *-*-mingw* | *-*-os2*)
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: ignored for $host_os" >&5
-$as_echo "ignored for $host_os" >&6; }
-        return
-        ;;
-    esac
-
-    visibility_CFLAGS="-fvisibility=hidden"
-    save_CFLAGS="$CFLAGS"
-    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    #if !defined(__GNUC__) || __GNUC__ < 4
-    #error SDL only uses visibility attributes in GCC 4 or newer
-    #endif
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  have_gcc_fvisibility=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_fvisibility" >&5
-$as_echo "$have_gcc_fvisibility" >&6; }
-    CFLAGS="$save_CFLAGS"
-
-    if test x$have_gcc_fvisibility = xyes; then
-        CFLAGS="$CFLAGS $visibility_CFLAGS"
-        CXXFLAGS="$CXXFLAGS $visibility_CFLAGS"
-    fi
-}
-CheckVisibilityHidden
-
 case "$host" in
     *-*-cygwin* | *-*-mingw*)
         MATHLIB=""
@@ -19409,7 +19461,7 @@ int
 main ()
 {
 
- glOrtho( -2.0, 2.0, -2.0, 2.0, -20.0, 20.0 );
+ glOrtho(-2.0, 2.0, -2.0, 2.0, -20.0, 20.0);
 
   ;
   return 0;
diff --git a/configure.ac b/configure.ac
index 4507261..e047d8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -108,6 +108,74 @@ AM_PATH_SDL2($SDL_VERSION,
 )
 CFLAGS="$CFLAGS $SDL_CFLAGS"
 LIBS="$LIBS $SDL_LIBS"
+
+dnl See if GCC's -Wall is supported.
+CheckWarnAll()
+{
+    AC_MSG_CHECKING(for GCC -Wall option)
+    have_gcc_Wall=no
+
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$save_CFLAGS -Wall"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int x = 0;])], [have_gcc_Wall=yes])
+    AC_MSG_RESULT($have_gcc_Wall)
+    CFLAGS="$save_CFLAGS"
+
+    if test x$have_gcc_Wall = xyes; then
+        CFLAGS="$CFLAGS -Wall"
+        CXXFLAGS="$CXXFLAGS -Wall"
+
+dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
+        AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
+        need_gcc_Wno_multichar=no
+        case "$host" in
+            *-*-haiku*)
+                need_gcc_Wno_multichar=yes
+                ;;
+        esac
+        AC_MSG_RESULT($need_gcc_Wno_multichar)
+        if test x$need_gcc_Wno_multichar = xyes; then
+            CFLAGS="$CFLAGS -Wno-multichar"
+            CXXFLAGS="$CXXFLAGS -Wno-multichar"
+        fi
+    fi
+}
+
+dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
+CheckVisibilityHidden()
+{
+    AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
+    have_gcc_fvisibility=no
+    case "$host" in
+    *-*-cygwin* | *-*-mingw* | *-*-os2*)
+        AC_MSG_RESULT([ignored for $host_os])
+        return
+        ;;
+    esac
+
+    visibility_CFLAGS="-fvisibility=hidden"
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+    #if !defined(__GNUC__) || __GNUC__ < 4
+    #error SDL only uses visibility attributes in GCC 4 or newer
+    #endif
+    ]],[])], [have_gcc_fvisibility=yes],[])
+    AC_MSG_RESULT($have_gcc_fvisibility)
+    CFLAGS="$save_CFLAGS"
+
+    if test x$have_gcc_fvisibility = xyes; then
+        CFLAGS="$CFLAGS $visibility_CFLAGS"
+        CXXFLAGS="$CXXFLAGS $visibility_CFLAGS"
+    fi
+}
+
+dnl check for GCC warning options
+CheckWarnAll
+
+dnl check for GCC visibility attributes
+CheckVisibilityHidden
+
 TTF_LIBS=
 TTF_CPPFLAGS=
 PC_REQUIRES=
@@ -208,36 +276,6 @@ fi
 AM_CONDITIONAL(OS_WIN32, test x$hb_os_win32 = xyes)
 AM_CONDITIONAL(USE_BUILTIN_HARFBUZZ, test x$enable_harfbuzz_builtin = xyes)
 
-dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
-CheckVisibilityHidden()
-{
-    AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
-    have_gcc_fvisibility=no
-    case "$host" in
-    *-*-cygwin* | *-*-mingw* | *-*-os2*)
-        AC_MSG_RESULT([ignored for $host_os])
-        return
-        ;;
-    esac
-
-    visibility_CFLAGS="-fvisibility=hidden"
-    save_CFLAGS="$CFLAGS"
-    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-    #if !defined(__GNUC__) || __GNUC__ < 4
-    #error SDL only uses visibility attributes in GCC 4 or newer
-    #endif
-    ]],[])], [have_gcc_fvisibility=yes],[])
-    AC_MSG_RESULT($have_gcc_fvisibility)
-    CFLAGS="$save_CFLAGS"
-
-    if test x$have_gcc_fvisibility = xyes; then
-        CFLAGS="$CFLAGS $visibility_CFLAGS"
-        CXXFLAGS="$CXXFLAGS $visibility_CFLAGS"
-    fi
-}
-CheckVisibilityHidden
-
 dnl Check for OpenGL
 case "$host" in
     *-*-cygwin* | *-*-mingw*)
@@ -277,7 +315,7 @@ LIBS="$LIBS $SYS_GL_LIBS"
 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
  #include "SDL_opengl.h"
 ]], [[
- glOrtho( -2.0, 2.0, -2.0, 2.0, -20.0, 20.0 );
+ glOrtho(-2.0, 2.0, -2.0, 2.0, -20.0, 20.0);
 ]])], [have_opengl=yes],[])
 AC_MSG_RESULT($have_opengl)
 LIBS="$save_LIBS"