chiark / gitweb /
Add a check in the new configure script to enable lots of gcc warning
authorSimon Tatham <anakin@pobox.com>
Sun, 30 Jun 2013 10:51:31 +0000 (10:51 +0000)
committerSimon Tatham <anakin@pobox.com>
Sun, 30 Jun 2013 10:51:31 +0000 (10:51 +0000)
flags if gcc is in use - but _only_ if they don't lead to problems in
a test compile which includes all the system and GTK headers I'm going
to want. Ubuntu 13.04 includes a version of Pango which breaks at
-Werror -pedantic, so I can't unconditionally enable all the warning
flags I might want without breaking the build in ways beyond my
control.

[originally from svn r9888]

configure.ac

index c5e2447ebfe19d86a600cda25d00d00f1b33e103..4281e965c53e39229330989044dd8411a74defc3 100644 (file)
@@ -4,11 +4,48 @@ AC_INIT([puzzles], rNNNN, [anakin@pobox.com])
 AC_CONFIG_SRCDIR([midend.c])
 AM_INIT_AUTOMAKE([foreign])
 AC_PROG_CC
+AM_PATH_GTK_2_0([2.0.0])
+
 if test "x$GCC" = "xyes"; then
-    : # FIXME: do something interesting enabling as many warning
-      # options as possible without breaking system headers.
+  AC_MSG_CHECKING([for usable gcc warning flags])
+  gccwarningflags=
+  for flag in -Wall -Werror -ansi -pedantic; do
+    ac_save_CFLAGS="$CFLAGS"
+    ac_save_LIBS="$LIBS"
+    CFLAGS="$CFLAGS$gccwarningflags $flag $GTK_CFLAGS"
+    LIBS="$GTK_LIBS $LIBS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+        #include <stdio.h>
+        #include <assert.h>
+        #include <stdlib.h>
+        #include <time.h>
+        #include <stdarg.h>
+        #include <string.h>
+        #include <errno.h>
+        #include <math.h>
+
+        #include <sys/time.h>
+        #include <sys/resource.h>
+
+        #include <gtk/gtk.h>
+        #include <gdk/gdkkeysyms.h>
+
+        #include <gdk-pixbuf/gdk-pixbuf.h>
+
+        #include <gdk/gdkx.h>
+        #include <X11/Xlib.h>
+        #include <X11/Xutil.h>
+        #include <X11/Xatom.h>
+    ],[
+        return 0;
+    ])], [gccwarningflags="$gccwarningflags $flag"], [])
+    CFLAGS="$ac_save_CFLAGS"
+    LIBS="$ac_save_LIBS"
+  done
+  AC_MSG_RESULT($gccwarningflags)
+  CFLAGS="$CFLAGS$gccwarningflags"
 fi
-AM_PATH_GTK_2_0([2.0.0])
+
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_CONFIG_FILES([Makefile])