source: trunk/third/gtkhtml/macros/compiler-flags.m4 @ 16767

Revision 16767, 3.2 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16766, which included commits to RCS files with non-trunk default branches.
Line 
1dnl GNOME_COMPILE_WARNINGS
2dnl Turn on many useful compiler warnings
3dnl For now, only works on GCC
4AC_DEFUN([GNOME_COMPILE_WARNINGS],[
5  AC_ARG_ENABLE(compile-warnings,
6    [  --enable-compile-warnings=[no/minimum/yes]       Turn on compiler warnings.],,enable_compile_warnings=minimum)
7
8  AC_MSG_CHECKING(what warning flags to pass to the C compiler)
9  warnCFLAGS=
10  if test "x$GCC" != xyes; then
11    enable_compile_warnings=no
12  fi
13
14  if test "x$enable_compile_warnings" != "xno"; then
15    if test "x$GCC" = "xyes"; then
16      case " $CFLAGS " in
17      *[\ \     ]-Wall[\ \      ]*) ;;
18      *) warnCFLAGS="-Wall -Wunused" ;;
19      esac
20
21      ## -W is not all that useful.  And it cannot be controlled
22      ## with individual -Wno-xxx flags, unlike -Wall
23      if test "x$enable_compile_warnings" = "xyes"; then
24        warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations"
25      fi
26    fi
27  fi
28  AC_MSG_RESULT($warnCFLAGS)
29
30  AC_ARG_ENABLE(iso-c,
31    [  --enable-iso-c          Try to warn if code is not ISO C ],,
32    enable_iso_c=no)
33
34  AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
35  complCFLAGS=
36  if test "x$enable_iso_c" != "xno"; then
37    if test "x$GCC" = "xyes"; then
38      case " $CFLAGS " in
39      *[\ \     ]-ansi[\ \      ]*) ;;
40      *) complCFLAGS="$complCFLAGS -ansi" ;;
41      esac
42
43      case " $CFLAGS " in
44      *[\ \     ]-pedantic[\ \  ]*) ;;
45      *) complCFLAGS="$complCFLAGS -pedantic" ;;
46      esac
47    fi
48  fi
49  AC_MSG_RESULT($complCFLAGS)
50  if test "x$cflags_set" != "xyes"; then
51    CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS"
52    cflags_set=yes
53    AC_SUBST(cflags_set)
54  fi
55])
56
57dnl For C++, do basically the same thing.
58
59AC_DEFUN([GNOME_CXX_WARNINGS],[
60  AC_ARG_ENABLE(cxx-warnings,
61    [  --enable-cxx-warnings=[no/minimum/yes]   Turn on compiler warnings.],,enable_cxx_warnings=minimum)
62
63  AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
64  warnCXXFLAGS=
65  if test "x$GCC" != xyes; then
66    enable_compile_warnings=no
67  fi
68  if test "x$enable_cxx_warnings" != "xno"; then
69    if test "x$GCC" = "xyes"; then
70      case " $CXXFLAGS " in
71      *[\ \     ]-Wall[\ \      ]*) ;;
72      *) warnCXXFLAGS="-Wall -Wno-unused" ;;
73      esac
74
75      ## -W is not all that useful.  And it cannot be controlled
76      ## with individual -Wno-xxx flags, unlike -Wall
77      if test "x$enable_cxx_warnings" = "xyes"; then
78        warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual"
79      fi
80    fi
81  fi
82  AC_MSG_RESULT($warnCXXFLAGS)
83
84   AC_ARG_ENABLE(iso-cxx,
85     [  --enable-iso-cxx          Try to warn if code is not ISO C++ ],,
86     enable_iso_cxx=no)
87
88   AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
89   complCXXFLAGS=
90   if test "x$enable_iso_cxx" != "xno"; then
91     if test "x$GCC" = "xyes"; then
92      case " $CXXFLAGS " in
93      *[\ \     ]-ansi[\ \      ]*) ;;
94      *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
95      esac
96
97      case " $CXXFLAGS " in
98      *[\ \     ]-pedantic[\ \  ]*) ;;
99      *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
100      esac
101     fi
102   fi
103  AC_MSG_RESULT($complCXXFLAGS)
104  if test "x$cxxflags_set" != "xyes"; then
105    CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
106    cxxflags_set=yes
107    AC_SUBST(cxxflags_set)
108  fi
109])
Note: See TracBrowser for help on using the repository browser.